1

リストを繰り返し処理し、Windows 8/Javascript でいくつかのファイルの名前を変更したいと考えています。したがって、「renameFile」という関数を作成し、次のようにループ内でこの関数を呼び出します。

    list.forEach(function (value, index, array) {
        var filename = index;
        var newfilename = index+1;
        renameFile(filename, newfilename);
    });

    function renameFile(filename, newfilename) {
    Windows.Storage.ApplicationData.current.localFolder.getFileAsync(filename).then(function (sampleFile) {
        sampleFile.renameAsync(newfilename).done(
            function complete(result) {
            },
            function error(error) {
                console.log("error" + error);
            }
            );
    });
}

問題は次のとおりです。名前変更関数は非同期であり、名前変更が機能する場合と機能しない場合があります。ほとんどの場合、リストの最初の要素のみが名前変更されます。リスト内の最初のアイテムの名前変更プロセスが終了するまでループを待機させてから、2 番目、3 番目、... アイテムに進むようにするにはどうすればよいですか?

乾杯

4

1 に答える 1