0

我尝试运行以下代码:

var top = new DirectoryInfo("C:\\");
foreach(var info in top.GetFileSystemInfos())
    System.Console.WriteLine("{0}: {1}", info.Name, info.Attributes);

我得到以下结果:

$Recycle.Bin: Hidden, System, Directory
ATI: Directory
Documents and Settings: Hidden, System, Directory, ReparsePoint , NotContentIndexed
MSOCache: ReadOnly, Hidden, Directory, NotContentIndexed
PerfLogs: Directory
Program Files: ReadOnly, Directory
Program Files (x86): 65553
ProgramData:73746
恢复:隐藏,系统,目录,NotContentIndexed
系统卷信息:隐藏,系统,目录
用户:只读,目录
Windows:65552
hiberfil.sys:隐藏,系统,存档,NotContentIndexed
pagefile.sys:隐藏,系统,存档

其中大部分都很明显。但是那些以粗体标记的是什么意思?尤其是 Program Files 和 Windows 的数字。

4

2 回答 2

2

我认为,这是此列表中属性的总和

例如,

65552 = 65536 (FILE_ATTRIBUTE_VIRTUAL) + 16 (FILE_ATTRIBUTE_DIRECTORY)

等等。

于 2009-12-28T15:04:50.590 回答
1

FileSystemInfo 的属性取自FileAttributes,它是一个枚举。

  • 这些数字对应于将各个位加在一起的总和。

  • ReparsePoint表示此目录上有一个重解析点,这会导致 NTFS 查看与该目录一起存储的一些特殊数据。您可以在此处阅读有关它们如何工作的更多信息。

  • NotContentIndexed表示如果有内容索引服务正在运行,它不会查看此目录。

于 2009-12-28T15:06:12.667 回答