Вопрос

Я попытался запустить следующий код:

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

Я получил следующий результат:

$Recycle.Bin:Скрытый, Система, Каталог
АТИ:Каталог
Документы и настройки:Скрытый, Система, Каталог, Репарсепоинт, Нотконтентиндексед
MSOCache:Только для чтения, Скрытый, Каталог, NotContentIndexed
Журналы производительности:Каталог
Программные файлы:Только для чтения, Каталог
Программные файлы (x86): 65553
Данные программы: 73746
Восстановление:Скрытый, Система, Каталог, NotContentIndexed
Информация о системном томе:Скрытый, Система, Каталог
Пользователи:Только для чтения, Каталог
Окна: 65552
hiberfil.sys:Скрытый, Система, Архив, NotContentIndexed
файл_страницы.sys:Скрытый, Система, Архив

Большинство из них довольно очевидны.Но что означают те, что выделены жирным шрифтом?Особенно числовые для Program Files и Windows.

Это было полезно?

Решение

Атрибуты FileSystemInfo взяты из FileAttributes, который является перечислением.

  • Числа соответствуют сумме сложения различных битов.

  • Репарсепоинт означает, что в этом каталоге есть точка повторной обработки, которая заставляет NTFS просматривать некоторые специальные данные, хранящиеся вместе с каталогом.Вы можете прочитать больше о том, как они работают здесь.

  • Нотконтентиндексед означает, что если запущена служба индексации контента, она не будет просматривать этот каталог.

Другие советы

Я думаю, это сумма атрибутов из этот список

Например,

65552 = 65536 (FILE_ATTRIBUTE_VIRTUAL) + 16 (FILE_ATTRIBUTE_DIRECTORY)

и так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top