我问这个问题的原因是因为如果任何底层文件或文件夹是ReadOnly,.NET会将文件夹视为ReadOnly。因此,此代码:如何找出目录本身是只读而不是底层文件
if (!Properties.Settings.Default.searchReadOnly &&
(diPath.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
writeable = false;
总是要将写入设置为false。
这是一个问题,如果您需要知道根文件夹是否只读。 我的Docments文件夹是不是只读,但是这是在属性窗口中显示'S:
任何帮助,将不胜感激。
编辑
我试图接近你的建议,但文档仍似乎有只读标志设置。
if (!Properties.Settings.Default.searchReadOnly &&
diPath.Attributes.HasFlag(FileAttributes.ReadOnly)) // == true
searchable = false;
这怎么可能?什么用户正在执行代码?我假设积极登录的用户?同样,假设因为我可以写入到Documents文件夹,它不能设置ReadOnly标志。
这个SO线程应该帮助:[链接](http://stackoverflow.com/questions/7511592/check-if-folder-is-read-only-in -c-net) – sszarek
谢谢@sszarek,这很有帮助! – DerpyNerd