Pesquisando diretórios para toneladas de arquivos?

votos
9

Estou usando MSVE, e eu tenho as minhas próprias telhas estou exibindo em camadas no topo. O problema é que há uma tonelada deles, e eles estão em um servidor de rede. Em certos diretórios, há algo na ordem de 30.000 arquivos. Inicialmente eu chamei Directory.GetFiles, mas depois que comecei a testes em um ambiente pseudo-real, ele expirou.

Qual é a melhor maneira de listar programaticamente, e iterar, este muitos arquivos?

Edit: O meu colega sugeriu usar o serviço de indexação MS. Alguém já experimentou esta abordagem, e (como) tem funcionado?

Publicado 06/08/2008 em 15:57
fonte usuário
Em outras línguas...                            


5 respostas

votos
4

Eu trabalhei em um sistema SAN no passado com gravações de áudio de telefonia que tiveram problemas com o número de arquivos em uma única pasta - que o sistema tornou-se inutilizado em algum lugar perto de 5.000 (no Windows 2000 Advanced Server com um aplicativo em C # .Net 1.1) - a única solução sensata que veio com era mudar a estrutura da pasta para que houvesse um número mais razoável de arquivos. Curiosamente Explorer também iria expirar!

A convenção que surgiu foi uma estrutura que quebrou a estrutura em anos, meses e dias - mas isso vai depender de seu sistema e se você pode controlar a estrutura do diretório ...

Respondeu 06/08/2008 em 16:35
fonte usuário

votos
2

Definitivamente separá-los. Dito isto, ficar o mais longe o serviço de indexação como você pode.

Respondeu 06/08/2008 em 17:03
fonte usuário

votos
1

Você também pode olhar para qualquer indexar os arquivos de si mesmo, ou a obtenção de um aplicativo terceira parte de como o Google Desktop ou copernic fazê-lo e, em seguida, a interface com seu índice. Eu sei copernic tem uma API que você pode usar para procurar qualquer arquivo em seu índice e também suporta drives de rede de mapeamento.

Respondeu 07/08/2008 em 00:53
fonte usuário

votos
1

Você poderia usar DOS?

DIR /s/b > Files.txt
Respondeu 06/08/2008 em 16:47
fonte usuário

votos
1

Nenhum. NET se baseia em chamadas subjacentes API do Windows que realmente, realmente odeio essa quantidade de arquivos em si.

Como diz Ronnie: separá-los.

Respondeu 06/08/2008 em 16:42
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more