このディレクトリにファイルをコピーするときに Created イベントをリッスンする FileSystemWatcher を使用しています。この方法は以下のとおりです。
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
System.IO.Directory.Move(fileSystemWatcher1.Path+@"\"+e.Name, fileSystemWatcher1.Path + @"\Processing\"+e.Name);
}
問題は、コピーに約 30 秒かかるような大きなファイルをこのディレクトリにコピーすると、最初のバイトがフォルダに書き込まれるとすぐにこのメソッドが呼び出され、別のファイルによって使用されているファイルを移動しようとすることです。プロセスは失敗します。
何かご意見は?
ありがとう