以下内容基本上是从此贴复制并粘贴的:
完整代码应该如下所示:
public void SetAllFilesAsReadOnly(string rootPath)
{
foreach (string file in Directory.EnumerateFiles(rootPath, "*.*", SearchOption.AllDirectories))
{
FileAttributes attr = File.GetAttributes(file);
attr = attr | FileAttributes.ReadOnly;
File.SetAttributes(file,attr);
}
}
根据您的评论,为了更好地理解,让我们把它分成几个部分:
一旦您拥有文件路径,创建文件属性对象:
var attr = File.GetAttributes(path)
以下是关于枚举标志和位运算的介绍,如果您还不了解,请参考
此处。
以下内容是如何将其设置为“只读”:
Read only
:
// set read-only
attr = attr | FileAttributes.ReadOnly
File.SetAttributes(path, attr)
这是取消“只读”状态的方法:
// unset read-only
attr = attr & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attr);
如果要获取所有文件,您可以使用以下命令:
foreach (string file in Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories))
{
Console.WriteLine(file);
}