0

ファイルパスの配列を特定の宛先にコピーする node.js アプリケーションを実装しています。

方法は簡単です。元のパスに 10 個のファイル パスがあり、宛先パスとして 1 つのパスがあるとします。そのため、各 From パスはfs.copy関数を使用して ONE By ONE で宛先にコピーされます。

ただし、ファイル配列は数とサイズの点で大きくなる可能性があるため、ユーザーがファイルのコピー操作をキャンセルして、既にコピーされたものを削除できる機能を実装しようとしています。

私の質問は、 fs.copy でキャンセル操作を行うことは可能ですか? たとえば、2GB のファイルをコピーしようとしているときに fs.copy 操作を停止するにはどうすればよいですか?

私が望むものを達成するための fs.copy 以外の代替手段はありますか?

4

1 に答える 1

1

readteam を writestream にパイプし、コピーを停止して宛先ファイルを削除する場合は、パイプを抜いてリンクを解除するだけでよいと思います。

var from = fs.createReadStream(fromFilename)
  .pipe(to);
var to = fs.createWriteStream(toFilename)
  .on("unpipe", function() {
    fs.unlink(toFilename); // effectively deletes the file
  });

// triggered by user
from.unpipe(); // stops the copy, triggers the delete

それはうまくいくでしょうか?

于 2016-07-22T07:21:51.663 に答える