我尝试运行以下代码:
var top = new DirectoryInfo("C:\\");
foreach(var info in top.GetFileSystemInfos())
System.Console.WriteLine("{0}: {1}", info.Name, info.Attributes);
我得到了以下结果:
$ Recycle.Bin:隐藏,系统,目录
ATI:目录
文档和设置:隐藏,系统,目录, ReparsePoint , NotContentIndexed
MSOCache:ReadOnly,Hidden,Directory,NotContentIndexed
PerfLogs:目录
程序文件:ReadOnly,目录
程序文件(x86): 65553
ProgramData: 73746
恢复:隐藏,系统,目录,NotContentIndexed
系统卷信息:隐藏,系统,目录
用户:ReadOnly,目录
Windows: 65552
hiberfil.sys:隐藏,系统,存档,NotContentIndexed
pagefile.sys:隐藏,系统,存档
其中大多数都非常明显。但那些用粗体标记的是什么意思呢?特别是Program Files和Windows的数字。
答案 0 :(得分:2)
我认为,这是this list
的属性总和例如,
65552 = 65536 (FILE_ATTRIBUTE_VIRTUAL) + 16 (FILE_ATTRIBUTE_DIRECTORY)
等等。
答案 1 :(得分:1)
FileSystemInfo的属性取自FileAttributes
,这是一个枚举。
这些数字对应于将各个位加在一起的总和。
ReparsePoint 表示此目录上有一个重新分析点,这会导致NTFS查看与目录一起存储的一些特殊数据。您可以详细了解它们的工作原理 here 。
NotContentIndexed 表示如果正在运行内容索引服务,则不会查看此目录。