【发布时间】:2010-12-01 07:49:34
【问题描述】:
我需要递归遍历 C# 中的目录。我正在做类似this 的事情。但是在遍历系统文件夹时会引发异常。在抛出异常之前如何检查?
【问题讨论】:
标签: c# directory filesystems
我需要递归遍历 C# 中的目录。我正在做类似this 的事情。但是在遍历系统文件夹时会引发异常。在抛出异常之前如何检查?
【问题讨论】:
标签: c# directory filesystems
您遇到什么类型的异常?
如果您遇到 SecurityException,您应该在 MSDN 上查看此示例
【讨论】:
您必须检查访问权限,但我强烈建议您捕获异常,这使代码更易于理解,并且还可以处理其他问题,例如当您想要远程解析目录并且网络出现故障时。 ..
如果您为目录树制作 GUI,您还可以在其他地方获得访问权限异常和错误图标的地方添加一些漂亮的锁定图标...在 C# 中已经有一个不错的 free open source component 用于启动它。
如果您想计算文件和大小,则无法解决权限问题,您必须在更高权限的用户下运行您的工具。
【讨论】:
我查看了您的链接和代码。在代码示例中,try...catch 构造用于在您到达没有权限的文件夹时停止搜索。
因此,基于此,我对您的问题的理解可以表述为“我如何判断我是否有权读取文件夹而不尝试读取文件夹并在我没有权限时抛出异常?”
如果是这样,那么这篇相关帖子可能会对您有所帮助。
Checking for directory and file write permissions in .NET
已添加
我同意@jdehaan 的回答,但只有在阅读了我发布的建议背后的原因的链接之后。
【讨论】: