[ 新規に投稿する ]

日本語ファイル名の表示順No.11659
Y_H さん 25/07/21 12:14 [ コメントを投稿する ]
  日本語ファイル名の表示順について質問させていただきます。
以下は簡単な例ですが、

サ1.txt
サ3.txt
ザ2.txt
ザ4.txt

というファイルがあるフォルダを「名前」でソートすると、

サ1.txt
ザ2.txt
サ3.txt
ザ4.txt

となり、濁音の有無は無視されるようです。
これはエクスプローラーもそうなるので、Windowsの比較関数の仕様なのだろうと思うのですが、
このフォルダをファイル検索で検索して、検索結果の一覧を「名前」でソートすると、

サ1.txt
サ3.txt
ザ2.txt
ザ4.txt

となり、濁音の有無が区別されています。
これは、同じ「名前」でも、通常のファイル一覧と検索結果の一覧とで、
違う方法で比較されているということになりますでしょうか?

個人的には、ここも同じように表示されないかなとは思うのですが、
どこかで切り替えたりできるものでしょうか?

よろしくお願いいたします。
[ ]
RE:11659 日本語ファイル名の表示順No.11660
秀丸担当 さん 25/07/22 11:08 [ コメントを投稿する ]
  検索結果の名前順は、確かに独自になっています。
あるフォルダ内の名前順は、Windowsによるソート順になっています。
検索結果の場合は、フォルダをまたぐことがあるので、Windowsによるソート順ではない独自です。
数値などを考慮したUnicode順になっています。
設定で変えることはできないです。

一応別の方法としては、拡張カラムを使った方法もあります。
https://hide.maruo.co.jp/lib/hmfcext/hmfilerclassicstrsort103.html
これを使うと、Windowsによる判断だったり、数値の桁の判断だったりが無い、純粋な文字列としてのソートにできます。
[ ]
RE:11660 日本語ファイル名の表示順No.11661
Y_H さん 25/07/22 13:43 [ コメントを投稿する ]
  >あるフォルダ内の名前順は、Windowsによるソート順になっています。
>検索結果の場合は、フォルダをまたぐことがあるので、Windowsによるソート順ではない独自です。
>数値などを考慮したUnicode順になっています。

解説いただきありがとうございます。
通常のフォルダではWindowsの判定に任せていて、
検索結果では独自にStrCmpLogicalWのような判定で行われているということですか。

XPとかの頃は、エクスプローラーもStrCmpLogicalWの順序だったと記憶していますが、
どのバージョンからかこんな濁音無視の順序になっていたのですね。
[ ]
RE:11661 日本語ファイル名の表示順No.11662
秀丸担当 さん 25/07/22 17:06 [ コメントを投稿する ]
  以前のエクスプローラ相当は濁音無視ではなかったと思いますが、いつからか変わったようです。
検索結果はフォルダをまたぐのでエクスプローラのものをそのまま使えないですが、通常のファイル一覧を独自に合わせるのは比較的やりやすいです。
従来の使い方をする目的からしても、通常のファイル一覧を独自にする設定など検討しようと思います。
[ ]
RE:11662 日本語ファイル名の表示順No.11663
Y_H さん 25/07/23 09:36 [ コメントを投稿する ]
  検討いただきありがとうございます。

・XPよりもさらに前の方法
・XPの頃の方法
・最近の濁音無視の方法
・OSの動作に従う

など選べるのはよい機能だと思います。
今後のネタとしてよろしくお願いいたします。

ちなみに、自分でも調べてみたところ、
Vista以降にはCompareStringExというAPIがあるようで、
これにNORM_IGNORENONSPACEを指定すると、濁点・半濁点などの結合文字を無視できるという情報がありました。
https://learn.microsoft.com/ja-jp/windows/win32/api/stringapiset/nf-stringapiset-comparestringex

ご存じだったら申し訳ありませんが、
ひょっとしたらこのAPIを使えば、検索結果の画面でも比較できるのではと思いました。
[ ]
RE:11663 日本語ファイル名の表示順No.11664
秀丸担当 さん 25/07/23 10:48 [ コメントを投稿する ]
  情報ありがとうございます。
そういう方法もあるのですね。
今後のネタにさせていただきます。
[ ]

[ 新規に投稿する ]