C# 文件夹(目录)只读?
我有一个名为FolderHelper的类,它有一个ReadOnly方法,目的是检查指定的目录是否为只读,并返回bool true或falseC# 文件夹(目录)只读?,c#,.net,directoryinfo,C#,.net,Directoryinfo,我有一个名为FolderHelper的类,它有一个ReadOnly方法,目的是检查指定的目录是否为只读,并返回bool true或false public static bool ReadOnly(string path) { DirectoryInfo directoryInfo = new DirectoryInfo(path); if (directoryInfo.Attributes.HasFlag(FileAttributes.ReadOnly)) {
public static bool ReadOnly(string path)
{
DirectoryInfo directoryInfo = new DirectoryInfo(path);
if (directoryInfo.Attributes.HasFlag(FileAttributes.ReadOnly))
{
return true;
}
return false;
}
我已将目录设置为只读,但该方法始终返回false-有人能提出原因吗 只读标志只能应用于文件,不能应用于目录。如果您尝试使用windows资源管理器在目录上设置此标志-您将得到相同的结果-此标志将不会设置为目录,但可以设置/取消设置为其包含的文件。由于该标志不能设置为目录-显然,您无法从目录中获取它
您可能需要检查此目录的写入权限,以确定用户是否可以创建/修改此目录中包含的文件。您可以使用来检查它。在另一篇stackOverflow文章中发现了这一点,可能这就是您需要做的
Windows文件系统上的目录不能设置为只读。请仔细查看上面的1。您可以提到,
标志将不会设置,但它将被设置/取消设置为仅包含所有文件
这已被问了几次,请参见此处@downvoter…请解释,以便我可以改进我的答案
public bool IsReadOnly(string dirPath)
{
try
{
using (FileStream fs = File.Create(
Path.Combine(
dirPath,
Path.GetRandomFileName()
),
1,
FileOptions.DeleteOnClose)
)
{ }
return false;
}
catch
{
return true;
}
}