フォルダ移動中にファイルの並びが頻繁にNo.08925
神子秋沙 さん 20/11/11 15:12
 
いつもお世話になっております。

実害は無いのと、再現条件が判らないのですが、以下の現象が発生しました。

あるフォルダにあるサブフォルダを別のドライブに移動中、フォルダにある先頭文字
が数字のファイルの並びがコロコロ変わりました。

以下のようにファイル名でソートされているとき
1.txt
@.txt
2.txt
A.txt
フォルダ移動中に上記の並びと次のような並びを繰り返しました。
1.txt
2.txt
@.txt
A.txt

操作自体には問題が無いので、優先度低めでご確認願います。

環境
OS:Windows7 pro 64bit
秀丸ファイラーClassic Ver1.58β9

[ ]
RE:08925 フォルダ移動中にファイルの並びNo.08928
秀丸担当 さん 20/11/11 16:58
 

同じファイル名で試してみたところでは再現できなかったのですが、丸囲みの数字で
も文字ではなく一桁の数値として評価されているようで、1と@は全く同じと評価さ
れているようです。
このあたりの判断はエクスプローラでも共通なのだと思います。
例えば以下のファイル名では二桁の数値になっているようでした。
11.txt
@2.txt
13.txt
@4.txt
でもやっぱり再現はできていないのですが、ソートのアルゴリズム次第では全く同じ
と評価されたら他の項目との具合によって入れ替わる可能性はありそうな気がします。

秀丸ファイラーClassicとしては、「文字列ソート」のモジュールを入れてその列で
ソートすることで数値としての評価ではなく、単純な文字として評価する方法があり
ます。
https://hide.maruo.co.jp/lib/hmfcext/hmfilerclassicstrsort103.html

[ ]
RE:08928 フォルダ移動中にファイルの並びNo.08930
神子秋沙 さん 20/11/12 07:22
 

確認していただきありがとうございます。
再現するファイル名については、こちらの都合で出せなかったため、一般化して書き
ましたが、すいません、こちらでも再現できませんでした。

幾つか試してみました、ファイル・フォルダの移動が問題では無く、ファイル名の
ソートの問題のようです。

以下のファイル名の時、300.txtを削除すると
@.txt
A.txt
300.txt
1260102.txt
 ↓
@.txt
1260102.txt
A.txt
になってしまいます。

半角数字と丸付き数字の組み合わせでソートの判定がおかしくなってしまっているよ
うです。
再現できるか、ご確認願います。

>秀丸ファイラーClassicとしては、「文字列ソート」のモジュールを入れてその列で
>ソートすることで数値としての評価ではなく、単純な文字として評価する方法があ
>ります。

紹介ありがとうございます。
取り敢えず、ファイルの紛失などの実害がないのでこのまま使い続ける予定です。

[ ]
RE:08930 フォルダ移動中にファイルの並びNo.08933
秀丸担当 さん 20/11/12 12:52
 

この例で再現させることができました。
ありがとうございます。
文字列ソートを使ってもパターンは違いますが同じような問題がありました。
エクスプローラでも同じ問題が出るようでした。

プログラム的なことですが、CompareStringWというWin32APIで同一視されることによ
る問題があるようで、エクスプローラの名前列もおそらく最終的にはこれによって比
較しているのだと思います。
文字列ソートは一文字一文字を分解して比較しているだけで、1文字の比較そのもの
については同様で、V1.04β9のときに拡張カラムであっても同じにとなる修正があり
ました。
常に同一視の無い文字列として比較することも不可能ではないですが、逆に期待と違
うソートと言われてしまうようなパターンのほうが増えてしまうと思います。
影響も少なそうなことから、すみませんがこのままにしておこうと思います。

[ ]
RE:08933 フォルダ移動中にファイルの並びNo.08934
神子秋沙 さん 20/11/13 00:05
 
確認していただきありがとうございます。

 エクスプローラの動作と同様であるのなら、本ソフトの主旨からしても特に問題な
いと思います。

ご対応ありがとうございました。

[ ]