Pergunta

Como o título sugere, estou procurando uma maneira de obter atributos de um grande número de arquivos em um diretório, mas sem adicionar o custo de um acesso adicional ao disco para cada arquivo.

Por exemplo, se eu receber o atributo de nome dos objetos FileInfo em uma coleção, não haverá acesso adicional ao disco. No entanto, se eu receber o último dia, é feito um acesso adicional ao disco.

Meu código:

DirectoryInfo di = new DirectoryInfo(myDir);
FileInfo[] allFiles = di.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach (FileInfo fInfo in allFiles)
{
    name = fInfo.Name  //no additional disk access made
    lastMod = fInfo.LastWriteTimeUtc  //further disk access made!!!
}

Alguém sabe de uma maneira de obter essas informações em uma viagem de ida e volta? Eu esperava que o diretórioInfo.getFiles () faça isso, mas não há sorte.

Desde já, obrigado.

Foi útil?

Solução 2

Então, isso acontece por design. O último tempo é carregado preguiçoso. Portanto, nada para fazer outro escreve meu próprio componente.

Outras dicas

Se você verdade Preocupa -se com isso, você provavelmente deve escrever isso em C usando o FindFirstFile/GetFileTime, etc.

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