读书人

FileSystemWatcher.Deleted事件触发后

发布时间: 2012-06-13 12:30:18 作者: rapoo

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里面就不会写了,不知道怎么获取被删除的文件类型,因为如果删除的是文件夹的话,我必须要做出不同的处理,求大神指教!怎么获取到被删除的是不是文件夹!

[解决办法]

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,另一个指—irectoryName。两个FileSystemWatcher的Deleted添加不同的事件。这样能解决对文件与文件夹的Delete执行不同操作的问题。但是这样如果Path所指示的文件夹引发Change事件的话会产生两次,不过这对我没影响,因为我只想监控其里面的文件系统的变化。

读书人网 >C#

热点推荐