我需要以递归方式遍历C#中的目录。我正在做类似this的事情。但是在迭代系统文件夹时抛出异常。如何在抛出异常之前检查它?
答案 0 :(得分:8)
您必须检查访问权限,但我希望能够捕获异常,这使得代码更容易理解,并且还会处理其他问题,例如当您想要远程解析目录并且网络崩溃时。 ..
如果您为目录树制作GUI,您还可以在其他地方获得访问权限异常和错误图标的位置添加一些漂亮的锁定图标...在C#中已经有一个很好的free open source component用于启动这一点。
如果要计算文件和大小,则无法克服权限问题,则必须在更高权限的用户下运行工具。
答案 1 :(得分:3)
我看了你的链接和代码。在代码示例中,try ... catch构造用于在您到达没有权限的文件夹时停止搜索。
基于此,我对您的问题的理解可以表达为“如果我没有权限,我怎么能判断我是否有权读取文件夹而不尝试读取文件夹并抛出异常?” / p>
如果是这种情况,那么此相关帖子可能会对您有所帮助。
Checking for directory and file write permissions in .NET
<强>加强>
我同意@jdehaan的答案,但只有在阅读了我发布的链接后才推荐。
答案 2 :(得分:0)
你得到什么类型的例外?
如果您收到SecurityException,您应该在MSDN
上查看此示例