Excel文件被手动删除到本地文件夹中,有一个FileWatcher将文件转换为新的文件结构并将其移动到下一个文件夹,该文件夹也有一个filewatcher。问题是,当此文件移动到下一个文件夹时,filewatcher不会触发任何事件。但是,如果我切断它并在物理上放下事件就会发生火灾。 我正在使用File.Move将文件从folder1复制到folder2
答案 0 :(得分:2)
你应该看看FileSystemWatcher detect when file is moved to folder
实际上当有移动时,filesystemwatcher发送一个删除(在源目录观察器中)和一个创建(在目标目录观察器中)。
答案 1 :(得分:0)
尝试使用重命名的事件。
另一个原因可能是缓冲区大小可能超过。
Public void WatchItBaby()
{
// ...
FileSystemWatcher watcher = new FileSystemWatcher(@"c:\temp\", "*.txt");
watcher.Created += new FileSystemEventHandler(OnChangedOrRenamed);
watcher.Renamed += new RenamedEventHandler(OnChangedOrRenamed);
watcher.EnableRaisingEvents = true;
// ...
}
private void OnChangedOrRenamed(object source, FileSystemEventArgs e)
{
// stuff
}