Windowsのエクスプローラで [ 名前 ] > [ 昇順 ] で並び替えると「何でそう並ぶ?」と言いたくなる並び方をすることがありませんか?
例えばこんなファイル名のExcelファイル。
希望通りの並び順になってるでしょうか。Windowsで名前の昇順で並べ替えたフォルダです。
下から3番目のファイルは「2016年12月28日」という意味でファイル名を付けています。他の2017から始まるファイルは2017年のもの。ですので「20161228.xlsx」は先頭に来てほしいのですが、なぜこんな中途半端な位置にいるのでしょう。
もしこれでいいと思うなら、設定を変更する必要はありません。違和感を感じるかどうかは慣れの問題ですし、現在のWindowsはこの並び順がデフォルトです。そもそもそんなファイル名の付け方しないっていう方もいらっしゃるでしょう。
違和感を感じるという人は恐らく昔のWindowsに慣れてしまっているのかもしれません。Windows XP SP1より前のWindowsでは下の画像のように並んでいました。
「20161228.xlsx」が一番上に来ました!これが私の期待通りの並び順です。
これは辞書と同じ並び順ですね。ファイル名の左から順番に数字の小さいほうが上になります。1文字目が同じなら2文字目、それも同じなら3文字目…となります。
一見こちらの並び順のほうがいい気がしてしまいますが、ではなぜWindowsがこの並び順を変えたのか。それはこんな理由からです。
現行Windowsのファイルの並び方
以前のWindowsで、ファイルに順番に数字を付けていったら、2桁になってこんな並び順になってしまい頭に「0」を加えて「01、02、03」とファイル名を修正したことのある方も多いと思います。
これってとても不自然な並び方ですよね。「2」があるのに「1」の次が「10」って…
では現行のWindowsはどのようなルールでファイル名の数字を扱っているのでしょうか。先ほどの1~11までの名前が付いたJPGファイルをデフォルト設定のWindows 10で見てみましょう。
こちらです。ちゃんと意図したとおりに1から11まで小さい順に並んでいます。とても自然な順番ですよね。
Windows XP SP1より前は数字を左から1文字ずつ比較して小さい順に並べていましたが、それ以降のWindowsでは数字を数値として見ています。
どういうことかというと、「10」というファイル名を「1列目が1で2列目が0」と見るのではなく「10」として考えます。なので「1」よりも「10」が大きい、「2」よりも「10」が大きい…となり、この場合は意図したとおりにファイルが並んでくれるようになったのです。
これだけだと便利ですが、このように日付の桁を揃えずにファイル名の付けている場合は、とんでもなくおかしな並び順になってしまいます。
日付順に並べるつもりでファイル名を付けたつもりが「2017<201701<201703<201704<20161228<20170212<20170429」とこのような数値として扱われてしまい小さい順に並びます。日付をファイル名にする場合は桁数を合わせないと管理しづらくなってしまいます。
右はアルファベットが含まれている場合の例。同じアルファベットの場合は次にくる数字の部分を数値として小さい順に並んでいます。
さて、どちらも一長一短な気がしますが、もしWindows XP SP1より前の辞書のような並び順に変更したいという場合は手順をご紹介しますのでやってみてください。
ただWindowsのレジストリを編集しなければならないので、バックアップをお忘れなく。変更によりトラブルが生じる場合もありますので自己責任でお願いします。
この記事の内容は下記のWindowsバージョンを対象にしています。
- Windows 7
- Windows 8/8.1
- Windows 10
Windows ファイルの並び順を変更する方法
まずはレジストリのバックアップを取ってください。
バックアップの取り方はこちらを参考にしてください。
Windows 7/8/10 レジストリのバックアップと復元方法
https://316-jp.com/windows-registry-backup-restore
[ ファイル名を指定して実行 ] に「regedit」と入力 > [ OK ] をクリック。レジストリエディターを開きます。
わからない場合は上記の記事で解説していますのでご覧ください。
下記の順番でフォルダを展開していきます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
[ Explorer ] を左クリックして選択状態にする > 上部メニューの [ 編集 ] > [ 新規 ] > [ DWORD値 ] をクリック。
「NoStrCmpLogical」と入力 > [ Enter ] キーを押す。
先ほど作成した [ NoStrCmpLogical ] を左クリックで選択状態にする > [ 編集 ] > [ 修正 ] > [ 値のデータ ] に「1」を入力 > [ OK ] をクリック。
「1」の場合: Windows XP SP1より前の並び方
「0」の場合: Windows XP SP1以降の並び方(Windows7/8/8.1/10のデフォルト)
上部メニューの [ ファイル ] > [ レジストリエディターの終了 ] をクリック。
PCを再起動します。
再起動後にフォルダの並び順が変わります。
元に戻す方法
[ ファイル名を指定して実行 ] に「regedit」と入力 > [ OK ] をクリック。レジストリエディターを開きます。
下記の順番でフォルダを展開していきます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
方法 1
こちらのやり方はまた変更したくなったときに楽な方法です。
先ほど作成した [ NoStrCmpLogical ] を左クリックで選択状態にする > [ 編集 ] > [ 修正 ] > [ 値のデータ ] に「0」を入力 > [ OK ] をクリック。
再起動すれば設定を変更する前の元の並び方に変わります。
上部メニューの [ ファイル ] > [ レジストリエディターの終了 ] をクリック。
再起動すれば設定を変更する前の元の並び方に変わります。
方法 2
こちらは先ほど変更した部分を削除します。レジストリを綺麗にしたいならこちら。
[ NoStrCmpLogical ] を右クリック > [ 削除 ] をクリック。
確認ダイアログが出たら [ はい ] をクリック。
上部メニューの [ ファイル ] > [ レジストリエディターの終了 ] をクリック。
再起動すれば設定を変更する前の元の並び方に変わります。