3

在我的应用程序中,我使用以下命令从选定路径获取所有文件:

foreach (string currentFile in Directory.EnumerateFiles(@"c:\", "*.*", SearchOption.AllDirectories))
{
    //some logic here
}

问题是,当尝试访问某些目录时,例如c:\Documents and Settings我得到一个UnauthorizedAccessException.

上面提到的文件夹没有显示在里面Windows Explorer或里面,.NET System.Windows.Forms.FolderBrowserDialog我找不到这个文件夹的特定属性,所以我可以过滤枚举。

我试过这个这个但没有用。

是否有任何类型的属性或参数可以用来限制循环中的此类目录?

4

2 回答 2

3

目录类不提供跳过无法访问的文件和文件夹的方法。您可以编写自己的目录扫描方法,该方法将递归地进入每个文件夹并在发生异常时跳过它。

于 2013-04-09T11:52:22.487 回答
0

您不能让系统管理员授予您的用户对所有文件的读取权限吗?听起来有些东西是您无法访问的。虽然我不阻止您通过仅从可移植性的角度排除这些文件来解决这个问题(不幸的是,我不能直接谈论如何做到这一点)。

于 2013-04-09T11:54:24.883 回答