我在使用FileSystemWatcher观看时是否可以删除文件?

时间:2011-09-30 07:35:34

标签: c# filesystemwatcher

我们知道在.NET中(C#是特定的),我们可以使用FileSystemWatcher来检测任何类型的修改。

public void MessageFileWatcher(string Path, string FileName)
        {
            FileSystemWatcher Watcher = new FileSystemWatcher();
            Watcher.Path = Path;
            Watcher.Filter = FileName;
            Watcher.NotifyFilter = NotifyFilters.LastWrite;
            Watcher.Changed += new FileSystemEventHandler(OnChanged);
            Watcher.EnableRaisingEvents = true;
        }

但是我希望对文件进行监视,并且在一段时间后还要删除该文件。

准确地说。 can FileSystemWatcher类总是寻找修改...如果我想删除该特定文件,它是否会引发异常?

2 个答案:

答案 0 :(得分:2)

它不会引发异常。

FileSystemWatcher不会监视文件:它会监视文件系统。在这种情况下,您会发现删除文件时至少会出现Deleted事件。

答案 1 :(得分:0)

FileSystemWatcher使用可选过滤器而不是单个文件来查看路径。当然,如果您将过滤器设置为文件的名称,则观察者将只观看一个文件,但这更像是其预期用途的副作用。

也就是说,显然,您可以删除正在观看的文件。但是,删除不应引发Changed事件。要监控删除,您需要使用Deleted事件。