08/08/03 23:19:39
ファイル名によるんじゃないの?
ファイルのコレクションを得る時内部でどういったソートしてんのか知らんけど。
リネーム後のファイルが、処理済ファイルと未処理ファイルのどちらに振り分けられるかの違い。
経験則でいうと、ファイルコレクションに対してリネーム処理をするといったような場合は
一旦全ファイル名の配列を得るとかして、
その配列に対して、即ち明示的にファイル名を指定してループ処理しなければおかしくなる。
for ... in でコレクションからひとつひとつファイルを取り出しつつリネームしていく、
といったオンザフライな処理では恐らく望んだ結果は得られない。
リネームすることで大元のコレクションの内容がリアルタイムで変わっちゃう感じ。
泥臭いけど俺はいつもこうしてる。
var f1 = objFSO.GetFolder(folderspec);
var f2 = new Enumerator(f1.Files);
var arr = new Array();
for (; !f2.atEnd(); f2.moveNext()) arr.push(f2.item().Name);
var f, i;
for (i = 0; i < arr.length; i++) {
f = objFSO.GetFile(objFSO.BuildPath(folderspec, arr[i]));
f.Name = "new" + f.Name;
}