FileSystemWatcher类-不包括目录

| 我目前正在尝试使用FileSystemWatcher类排除目录,尽管我使用了以下方法:
FileWatcher.Filter = \"C:\\\\$Recycle.Bin\";
FileWatcher.Filter = \"$Recycle.Bin\";
它可以编译,但是当我尝试此操作时未显示任何结果。 如果我删除过滤器,则所有文件都可以正常加载,代码如下:
 static void Main(string[] args)
        {
            string DirPath = \"C:\\\\\";

            FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath);
            FileWatcher.IncludeSubdirectories = true;
            FileWatcher.Filter = \"*.exe\";
          // FileWatcher.Filter = \"C:\\\\$Recycle.Bin\";
          //  FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed);
            FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);
          //  FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);
          //  FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);
            FileWatcher.EnableRaisingEvents = true;

            Console.ReadKey();
        }
    
已邀请:
您可能还没有阅读http://msdn.microsoft.com/zh-cn/library/system.io.filesystemwatcher.filter.aspx。您不能使用Filter属性排除任何内容。它仅包含与过滤器匹配的对象。 如果要排除某些内容,请在FSW触发的事件中进行。     
确定文件是否为事件处理程序中的目录,然后执行以下操作:
private void WatcherOnCreated(object sender, FileSystemEventArgs fileSystemEventArgs)
{
    if (File.GetAttributes(fileSystemEventArgs.FullPath).HasFlag(FileAttributes.Directory))
        return; //ignore directories, only process files

    //TODO: Your code handling files...
}
    

要回复问题请先登录注册