秀丸ファイラーClassic:ソートの不可解なNo.06034
CaskStrength さん 10/09/08 10:27
 
CaskStrengthです。

 ソートに不可解な挙動があるので報告です。

 「種類」などでソートをしている場合、ソートの二番目のキーはフォ
ルダやファイルの名前、ですよね?たとえば「種類」で昇順ソートの
場合、フォルダが先頭に来てそれから種類の説明テキストでソートさ
れ、同じ種類の中では名前でソートされるように見えます。
 ということでよろしいでしょうか(まず確認)

 ところがいくつかのフォルダのみ、その中を「種類」でソートして
もフォルダだけ順不同で並びます。
 一度「名前」でソートしてから「種類」でソートをかけると、期待
した並び順になります。ですが他のフォルダを開いてからまたその
(さっき並べ替えたばかりの)フォルダに戻ると、やはりその中のフォ
ルダの並びが変になっています。

 条件ははっきりしませんが、今のところ再現するフォルダは、メモ
リカードリーダーに挿したSDカードで、リムーバブルディスク扱いに
なっているドライブ内にあるという点が他とまず違います。

 ややこしい説明で恐縮です。把握していただけるといいのですが。

[ ]
RE:06034 秀丸ファイラーClassic:ソートNo.06040
秀丸担当 さん 10/09/08 14:07
 

> 「種類」などでソートをしている場合、ソートの二番目のキーはフォ
>ルダやファイルの名前、ですよね?たとえば「種類」で昇順ソートの
>場合、フォルダが先頭に来てそれから種類の説明テキストでソートさ
>れ、同じ種類の中では名前でソートされるように見えます。
> ということでよろしいでしょうか(まず確認)

ソートの2番目の要素は名前ですが、これが適用されるのは最初に表示したとき
だけで、カラムのクリックした直後は関係ないです。
最初に表示するときに限ってではその通りです。

> ところがいくつかのフォルダのみ、その中を「種類」でソートして
>もフォルダだけ順不同で並びます。
> 一度「名前」でソートしてから「種類」でソートをかけると、期待
>した並び順になります。ですが他のフォルダを開いてからまたその
>(さっき並べ替えたばかりの)フォルダに戻ると、やはりその中のフォ
>ルダの並びが変になっています。

言われていることは把握できていると思いますが、そのように再現させることが
できませんでした。
リムーバブルメディアで試してみても確認できませんでした。
変というのは具体的にどのようにおかしいのかなど、具体的なファイル名などが
わかると何かヒントになるかもしれません。
例えばアンダーバーは文字コード順とシェルが認識するソート順は違っていて、
アンダーバーが先になるようです。

[ ]
RE:06040 秀丸ファイラーClassic:ソートNo.06041
CaskStrength さん 10/09/08 14:42
 
CaskStrengthです。

> 言われていることは把握できていると思いますが、そのように再現させることが
> できませんでした。
> リムーバブルメディアで試してみても確認できませんでした。
> 変というのは具体的にどのようにおかしいのかなど、具体的なファイル名などが
> わかると何かヒントになるかもしれません。

 それが規則性が見えなかったものでして、名前でも更新日時でもな
いようなのです。

 そこでディレクトリエントリの順を疑って、UMSSortを使ってディ
レクトリの順番を名前順でソートしてみました。
http://www.geocities.jp/umssort/
 すると期待通り、種類でソートしたときフォルダが名前順に並びま
した。

 この結果からすると、疑い通りディレクトリエントリで並んでいる、
というように解釈できますが…。いかがでしょう。
 私のところでリムーバブルディスクだけの症状というのは、まだ詳
細はわかりません。思いつくことがあったら検証してみます。

[ ]
RE:06041 秀丸ファイラーClassic:ソートNo.06043
秀丸担当 さん 10/09/08 14:54
 

> この結果からすると、疑い通りディレクトリエントリで並んでいる、
>というように解釈できますが…。いかがでしょう。
> 私のところでリムーバブルディスクだけの症状というのは、まだ詳
>細はわかりません。思いつくことがあったら検証してみます。

そうでしたか。
そうだとすると、ローカルディスクがNTFSだとすると、自動的にアルファベット
順になるので、ローカルディスク上では問題が表れにくいのかもしれないです。

フォルダ名先頭にアンダーバーが付いたフォルダを作ると、ローカルディスク上
でも同じことが確認できるのではないかと思います。
アンダーバーは、NTFS上の順番は最下位に来て、シェルのソートでは最上位に来
るようです。

こちらで確認した限りでは、アンダーバーの付いたフォルダでも確認できません
でした。

ちなみに秀丸ファイラーClassicの名前のソートは文字コードを調べてやってい
るわけではなく、シェルのインターフェースのCompareIDsという関数を呼んでい
るだけで、その先でどういうルールで順位が付けられているのかはわからないで
す。
リームーバブルディスクのインターフェースを実装する側がディレクトリエント
リ順を返すようになっているとしたら、そういうことも有り得ると思いますが、
そうだとしたら、「名前」のカラムをクリックしたときもおかしいはずなので、
違うかもしれないです。

[ ]
RE:06043 秀丸ファイラーClassic:ソートNo.06046
CaskStrength さん 10/09/08 15:42
 
CaskStrengthです。

 USBメモリを挿して追加実験してみたところ、やはり同様の症状で
した。

 まとめるとどうやら
・FAT32の場合(NTFS以外の場合?)に
・「名前」*以外*でソートすると
・フォルダに限ってディレクトリエントリの順が第2キーになって並
  ぶ
ということですね。

> ちなみに秀丸ファイラーClassicの名前のソートは文字コードを調べてやってい
> るわけではなく、シェルのインターフェースのCompareIDsという関数を呼んでい
> るだけで、その先でどういうルールで順位が付けられているのかはわからないで
> す。

 問題は「名前」でソートしたときではなく、「種類」でソートした
ときに起きることなので、「種類」でソートしたときにそもそも第2
キーがディレクトリエントリの順になってしまっていると言うことで
はないでしょうか?それならNTFSの場合名前順ということですし、現
象が理解できるのですが。

[ ]
RE:06046 秀丸ファイラーClassic:ソートNo.06047
CaskStrength さん 10/09/08 15:47
 
CaskStrengthです。

>  問題は「名前」でソートしたときではなく、「種類」でソートした
> ときに起きることなので、「種類」でソートしたときにそもそも第2
> キーがディレクトリエントリの順になってしまっていると言うことで
> はないでしょうか?それならNTFSの場合名前順ということですし、現
> 象が理解できるのですが。

 と自分で書いておいて何ですが、ファイルはちゃんと名前が第2キー
になっているのでした…。やはりよくわかりませんね?システムの関
数を呼んでいるなら、そちらの不具合と考えるしかないのでしょうか。

 環境を書き忘れていましたが、Windows XP SP3でもWindows7でもど
ちらでも同じ現象です。

[ ]
RE:06047 秀丸ファイラーClassic:ソートNo.06049
秀丸担当 さん 10/09/08 16:42
 

> と自分で書いておいて何ですが、ファイルはちゃんと名前が第2キー
>になっているのでした…。やはりよくわかりませんね?システムの関
>数を呼んでいるなら、そちらの不具合と考えるしかないのでしょうか。

NTFS上でアンダーバーの付いたフォルダ("_folder"とか)を作ってみるとディレ
クトリエントリとは違う順番になるので、何かわかるかもしれません。

シェル側のインターフェースの実装に問題があるとしたら、「名前」でソートし
ても問題が起きるかと思ったのですが、そうではないようで。

秀丸ファイラーClassicとしてはファイルシステムやリムーバブルディスクかによ
ってソート方法は変えてはいないです。
WindowsXPとWindows7で試してみましたが、どちらも問題ありませんでした。
試しに

  c1
  a2
  b3

という順番でフォルダを作成し、種類でソートして、フォルダツリーから別のフ
ォルダを選んで、また元のフォルダに戻ると、

  a2
  b3
  c1

という順番になっていました。

あと、持ち出しキットを使われているということで、今実行しているものが何か
混乱しているかもしれないので、バージョンを改めて確認していただけるとわか
るかもしれないです。
β5では問題の通りディレクトリエントリの順でした。

[ ]
RE:06049 秀丸ファイラーClassic:ソートNo.06050
CaskStrength さん 10/09/08 16:57
 
CaskStrengthです。

 原因が分かりました。

秀丸ファイラーClassic:ソートについての確認と要望
http://www.maruo.co.jp/turukame/3/x06016_.html#6016
のスレッドで教えていただいたカラム拡張DLLを導入して、拡張子を
カラムに追加し、それでソートしていたためでした。

 最初に「種類」でも試してみて同じ現象が起きることを確認したつ
もりだったのですが、確認ミスだったようです。申し訳ないです。

 このカラム拡張DLLの(たぶん想定外の)仕様、ということになり
ますね?お手間を取らせて重ね重ね申し訳ありませんでした。

#拡張子でのソートの希望がかなったと喜んでいたのですが、ちょっ
#と残念なことになりました。

[ ]
RE:06050 秀丸ファイラーClassic:ソートNo.06051
CaskStrength さん 10/09/08 17:03
 
CaskStrengthです。

> のスレッドで教えていただいたカラム拡張DLLを導入して、拡張子を
> カラムに追加し、それでソートしていたためでした。
>
>  最初に「種類」でも試してみて同じ現象が起きることを確認したつ
> もりだったのですが、確認ミスだったようです。申し訳ないです。

 一応追記しておくと、このDLLによって「拡張子」を追加しておく
と、「種類」でソートしてもフォルダがディレクトリエントリ順になっ
てしまうようです。影響を及ぼすということですね。
「拡張子」を除くと、「種類」のソートが正常化します。

 いずれにせよ拡張DLLの影響ということでした。失礼しました。

[ ]
RE:06050 秀丸ファイラーClassic:ソートNo.06052
秀丸担当 さん 10/09/08 17:10
 

>のスレッドで教えていただいたカラム拡張DLLを導入して、拡張子を
>カラムに追加し、それでソートしていたためでした。

こちらでも再現できました。
ありがとうございます。
調べてみたところ、カラムツールの「拡張子」はフォルダの場合はエラーで返っ
ているため、秀丸ファイラーClassic側のソート処理は中断していたようです。
エラーの場合は第二要素にまわすようにすれば解決できたので、β8はさきほど出
してしまいましたがβ9で修正させていただきます。

[ ]
RE:06052 秀丸ファイラーClassic:ソートNo.06053
CaskStrength さん 10/09/08 17:14
 
CaskStrengthです。

> エラーの場合は第二要素にまわすようにすれば解決できたので、β8はさきほど出
> してしまいましたがβ9で修正させていただきます。

 ファイラー側で対応していただけますか。それは助かります。

 ありがとうございます(^^)

[ ]