[英]Using FileSystemWatcher to monitor file creation and copy it before deleted
我们有一个第三方应用程序,它将文件写入目录然后将其删除。 我们希望在删除之前复制该文件。
我们有这个:
FileSystemWatcher watcher;
private void WatchForFileDrop()
{
watcher = new FileSystemWatcher();
watcher.Path = "c:\\FileDrop";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName;
watcher.Filter = "*.txt";
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.EnableRaisingEvents = true;
}
private void OnCreated(object source, FileSystemEventArgs e)
{
//Copy the file to the file drop location
System.IO.File.Copy(e.FullPath, "C:\\FileDropCopy\\" + e.Name);
}
FileSystemWatcher确实有效。 它将看到该文件已创建并进入OnCreated()。 该文件在目录中创建。
唯一的问题是文件为空,文件大小为0kb。
我想仔细检查一下我为什么文件是空的想法。 是因为第三方应用程序如此快速地删除了文件,因为它没有机会进行正确的复制? 谢谢参观。
选项1:您应该查看挂钩代码以删除事件,而不是查看FileSystemWatcher。 您可以在Stack Overflow上查看此评论: https : //stackoverflow.com/a/4395147/442470
选项2:FileSystemWatcher一旦意识到创建了文件,就更改文件的权限,使其无法删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.