繁体   English   中英

使用FileSystemWatcher监视文件创建并在删除之前复制它

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM