FileSystemWatcher.Deleted事件触发后,能不能获取被删除的文件类型?解决思路
FileSystemWatcher.Deleted事件触发后,能不能获取被删除的文件类型?
public static void OnChanged(object sender, FileSystemEventArgs e)
{
//指定当文件被更改、创建或删除时要做的事
Console.WriteLine("file:" + e.FullPath + "__" + e.ChangeType+"___"+e.GetType());
if (e.ChangeType == WatcherChangeTypes.Deleted)
{
}
}
if里面就不会写了,不知道怎么获取被删除的文件类型,因为如果删除的是文件夹的话,我必须要做出不同的处理,求大神指教!怎么获取到被删除的是不是文件夹!
------解决方案--------------------
public static void OnChanged(object sender, FileSystemEventArgs e)
{
//指定当文件被更改、创建或删除时要做的事
Console.WriteLine("file:" + e.FullPath + "__" + e.ChangeType+"___"+e.GetType());
if (e.ChangeType == WatcherChangeTypes.Deleted)
{
}
}
if里面就不会写了,不知道怎么获取被删除的文件类型,因为如果删除的是文件夹的话,我必须要做出不同的处理,求大神指教!怎么获取到被删除的是不是文件夹!
------解决方案--------------------
- C# code
public static void OnChanged(object sender, FileSystemEventArgs e) { //指定当文件被更改、创建或删除时要做的事 Console.WriteLine("file:" + e.FullPath + "__" + e.ChangeType + "___" + e.GetType()); if (e.ChangeType == WatcherChangeTypes.Deleted) { string ext = Path.GetExtension(e.Name); // 获取文件的扩展名,这就是文件的类型,然后进一步处理 } }
------解决方案--------------------
好像没有什么好办法,我的做法是开两个FileSystemWatcher,一个的NotifyFilter指定FileName,另一个指定DirectoryName。两个FileSystemWatcher的Deleted添加不同的事件。这样能解决对文件与文件夹的Delete执行不同操作的问题。但是这样如果Path所指示的文件夹引发Change事件的话会产生两次,不过这对我没影响,因为我只想监控其里面的文件系统的变化。