C#:如何检查我是否可以读取和/或删除目录

标签 c# access-control directory

我递归地遍历一堆目录。其中一些(如 D:\$RECYCLE.BIN\S-1-5-20)给我一个 System.UnauthorizedAccessException。我想我可以捕获它并继续前进,但我宁愿提前弄清楚。

所以,当我有一个 DirectoryInfo 对象时。我如何查看是否允许我 GetDirectories() 并可能 Delete()

最佳答案

如果你打算删除它,尝试删除它然后继续(适当处理异常)。

如果您执行检查然后删除-if-should-be-able-to-delete,则文件系统上有可能出现竞争条件,无论多么轻微。这适用于大多数文件/目录访问操作。大多数文件系统操作都设计为原子操作,将此逻辑移动到用户代码中会与这种原子性冲突,而且仍然需要处理可能引发的异常。

关于C#:如何检查我是否可以读取和/或删除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604183/

相关文章:

c# - 在 Silverlight 中保留用户首选项

c# - C#脚本错误 "Line3 is a'变量”,但其用法类似于方法-帮助理解

c# - yield 在现实生活中有哪些应用?

c++ - 模板类友元

java - 如何使用 spring 和 jquery 设置真正的跨域策略

c# - 通过代码突出显示ListViewItem背景颜色

java - 具有对象粒度的java安全框架

path - 如何从 tcsh 中的 pwd 中提取部分路径?

php按创建日期而不是名称对文件夹进行排序

bash - 如何从 bash 更改目录的图标/标志