首页 > 解决方案 > Directory.Exists 在 FileSystemWatcher ArgumentException 之后返回 false

问题描述

本地驱动器 C 在远程桌面连接中共享。我成功地迭代了 C\ Program 文件中的文件夹。但是如果我添加FileSystemWatcher到 Program Files 的子文件夹中,其中一些会抛出 Argument 异常 - 错误的路径(实际上是由EnumerateDirectories方法给出的!!)。然后意外拒绝访问 C 的其他子文件夹。这是一个示例代码:

// returns TRUE
var firstTryTrue = Directory.Exists("\\\\tsclient\\C\\DRIVERS");
try
{
    foreach (var item in Directory.EnumerateDirectories("\\\\tsclient\\C\\Program Files"))
    {
        FileSystemWatcher w2 = new FileSystemWatcher(item);
        w2.NotifyFilter = NotifyFilters.DirectoryName | NotifyFilters.FileName;
        w2.IncludeSubdirectories = false;
        w2.EnableRaisingEvents = true;
    }
}
catch (FileNotFoundException ee) { }
catch (ArgumentException ae) { }

// returns FALSE
var secondTryFalse = Directory.Exists("\\\\tsclient\\C\\DRIVERS");

标签: c#.net

解决方案


推荐阅读