FileSystemWatcherを使用し、ファイルの作成時にある宛先から別の宛先にファイルを移動する単純なC#コンソールアプリケーションがあります。私のコードは次のようになります。
public static void WatchForFiles()
{
FileSystemWatcher watcher = new FileSystemWatcher();
//folder path is path to folder
watcher.Path = folderPath;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
//Add event handlers
watcher.Created += new FileSystemEventHandler(File_OnChanged);
//Begin watching
watcher.EnableRaisingEvents = true;
}
public static void File_OnChanged(object sender, FileSystemEventArgs e)
{
//destiantion path is path to folder
string destiantionFileFullPath = destianationPath + e.Name;
if (!File.Exists(destiantionFileFullPath))
{
File.Move(e.FullPath, destiantionFileFullPath);
}
}
初めてファイルをコピーすると、正常に移動します。しかし、その後、または2つ以上のファイルをコピーすると、コンソールウィンドウが自動的に閉じられます。IAsyncResultを使用する必要があると思いますが、方法がわかりません。Tasksを試しましたが、役に立ちませんでした。最初にファイルをコピーしてから削除しても役に立ちませんでした。これには何が原因で、どうすればこれを防ぐことができますか?前もって感謝します