【发布时间】:2014-12-27 17:39:40
【问题描述】:
我正在使用System.IO.FileSystemWatcher 来监视一个目录,并在文件或目录被修改或删除时执行操作。
我遇到的问题是,一旦删除了文件夹,就会引发 Deleted 事件,但我得到的参数不足以让我知道是否删除了目录或文件。
我得到的参数是一个路径,例如C:\Temp\a,它可以是一个目录,也可以是一个没有扩展名的文件。
我尝试了以下方法,但都没有给我正确的结果。
var c = Path.DirectorySeparatorChar.ToString();
var isDir = Path.GetDirectoryName(path) == path.TrimEnd(c.ToCharArray());
和
var isDir =(File.GetAttributes(path) & FileAttributes.Directory) == FileAttributes.Directory;
【问题讨论】:
-
文件夹或文件在您收到事件时已被删除。您可以做的是在内部保留所有文件和文件夹的列表,并将从您的事件收到的路径与该列表匹配
-
如果是文件,基本目录还会存在吗?
-
@Saruman,如果它是一个目录,那么基本目录仍然存在。
标签: c#