2

私が目撃した行動は他の方法でも観察されるだろうという予感があるので、これがこの質問を投稿する正しい場所であるかどうかはわかりません。しかし、とにかく、ここに行きます。

次のようなコードを含む VBscript があります。

For Each objFile In colFiles
...
Next

私はかなり長い間、このコードをさまざまなシステムで実行してきました。ファイルをアルファベット順に並べることを気にしたことはありません。しかし、今日、私のプログラムのロジックがそれに依存していることを偶然知りました。新しいシステム (Citrix の下) でコードを実行したところ、一見ランダムな順序でファイルが返されました。

Windowsがアルファベット順にソートされたファイルを返す場合と返さない場合がある理由を知っている人はいますか?

追加のメモ: スクリプトと入力フォルダーがネットワーク共有上にあることに注意してください (私のスクリプトはランダムに並べられたファイルを出力します)。

4

3 に答える 3

2

FileSystemObject の順序付けはサポートされていません。KB 189751 を参照してください http://support.microsoft.com/kb/189751/en-us

また、FileSystemObject の SO Order of Files コレクションでの対処方法についての回答も確認してください。

于 2013-07-10T17:27:54.333 に答える
1

ドキュメントは順序を指定していません。したがって、注文を行うためにそれに依存することはできません。Files プロパティは、基になるファイル システムにファイルを要求する必要があり、その後、何も処理せずにそのまま提供します。そのファイル システムがたまたま順番にファイルを返す場合、それはすばらしいことです。そうでない場合は、並べ替える必要があります。順序が正しいかどうかに関係なく、実装が明日変更される可能性があるため、特定の順序であると予想される場合は常に順序付けする必要があります (これまで見てきたように)。

于 2013-07-04T22:38:47.930 に答える