在c#中搜索所有文件夹,而不会死在一个我不知道的文件夹上';我也不能进入

在c#中搜索所有文件夹,而不会死在一个我不知道的文件夹上';我也不能进入,c#,file-permissions,directory,C#,File Permissions,Directory,我想在硬盘上搜索包含“StudentPortalNightly”的文件夹 但是当我取而代之时是个例外,因为我没有访问所有文件夹的权限 List<string> dirs = Directory.GetDirectories( @"C:\" , "StudentPortalNightly", SearchOption.AllDirectories).ToList(); List dirs=Directory.GetDirectories(@“C:\”、“StudentPortalNi

我想在硬盘上搜索包含“StudentPortalNightly”的文件夹 但是当我取而代之时是个例外,因为我没有访问所有文件夹的权限

List<string> dirs = Directory.GetDirectories( @"C:\" , "StudentPortalNightly", SearchOption.AllDirectories).ToList();
List dirs=Directory.GetDirectories(@“C:\”、“StudentPortalNightly”、SearchOption.AllDirectories).ToList();
有没有办法只搜索我有合法访问权限的文件夹

谢谢

埃里克-

List<string> dirs = new List<string>(Directory.GetFiles(@"C:\").ToList());
List dirs=new List(Directory.GetFiles(@“C:\”).ToList());

只要捕捉到正确的异常,Try-catch就可以工作。在这种情况下,您需要捕获
系统。UnauthorizedAccessException

查看我的问题的答案,答案非常有效-为什么不简单捕获异常?@Ramhound,大概是因为它无法解决问题。他想要所有他有权访问的文件夹,而不是所有他没有访问的文件夹,之后什么都不要。这让我发疯,直到我得到答案,每当你捕获到异常,它就会停止整个枚举,看起来你无法捕获异常并返回枚举下一个文件。我怀疑这是否有效,如上所述。文件上的枚举仍然会引发异常。它工作正常我刚刚测试过它,它会将所有文件的列表添加到一个包含完整路径和文件名的列表中。。除非他只想要这些名字,否则他将不得不删除路径。也许你有不同的权限,但我只是尝试了一下,并访问了路径“C:\$Recycle.Bin\S-1-5-21-3836598418-2506196355-976077039-1000\”被拒绝。不管怎样,让我们看看它是否解决了OP.c$是一个共享,他有权共享吗。。在本地驱动器加上S-1-5上尝试它看起来像是另一种用户帐户类型的文件夹无论发生什么情况只要获取文件上述代码就可以了他的初始示例不起作用。。需要更改权限/权限他没有访问权限肯定是有原因的我不确定他将拥有什么权限,只是要指出,c$不是它搜索的地方,它在$Recycle.Bin中搜索,这是隐藏共享吗?大概回收站会看到原始问题中的注释,这不会起作用,因为它会停止执行,并且我无法继续下一个文件夹。