Pergunta

Eu tentei executar o seguinte código:

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

Recebi o seguinte resultado:

$ Recycle.bin: oculto, sistema, diretório
ATI: Diretório
Documentos e configurações: oculto, sistema, diretório, ReparsePoint, NotContentIndexed
Msocache: readonly, oculto, diretório, notcontentIndexed
Perflogs: Diretório
Arquivos de programas: readonly, diretório
Arquivos de programas (x86): 65553
Dados do Programa: 73746
Recuperação: oculta, sistema, diretório, notcontentIndexed
Informações sobre volume do sistema: oculto, sistema, diretório
Usuários: READONLY, diretório
Janelas: 65552
Hiberfil.sys: Oculto, Sistema, Arquivo, NotContentIndexed
PageFile.sys: Hidden, System, Archive

A maioria deles é bastante óbvia. Mas o que significa marcado em negrito? Especialmente os numéricos para arquivos de programas e Windows.

Foi útil?

Solução

Os atributos do FileSystemInfo são retirados de FileAttributes, que é uma enumeração.

  • Os números correspondem à soma de adicionar os vários bits.

  • ReparsePoint significa que há um ponto reparador neste diretório, que faz com que os NTFs analisem alguns dados especiais que foram armazenados junto com o diretório. Você pode ler mais sobre como eles funcionam aqui.

  • NotContentIndexed significa que, se houver um serviço de indexação de conteúdo em execução, ele não analisará este diretório.

Outras dicas

Eu acho, isso é uma soma de atributos de esta lista

Por exemplo,

65552 = 65536 (FILE_ATTRIBUTE_VIRTUAL) + 16 (FILE_ATTRIBUTE_DIRECTORY)

e assim por diante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top