Question

J'utilise MSVE et j'ai mes propres vignettes que j'affiche en couches par-dessus.Le problème est qu’il y en a une tonne et qu’ils se trouvent sur un serveur réseau.Dans certains répertoires, il y a de l'ordre de 30 000+ fichiers.Au départ, j'ai appelé Directory.GetFiles, mais une fois que j'ai commencé à tester dans un environnement pseudo-réel, le délai a expiré.

Quelle est la meilleure façon de répertorier et de parcourir par programmation autant de fichiers ?

Modifier:Mon collègue a suggéré d'utiliser le service d'indexation MS.Quelqu'un a-t-il essayé cette approche et (comment) cela a-t-il fonctionné ?

Était-ce utile?

La solution

J'ai déjà travaillé sur un système SAN avec des enregistrements audio de téléphonie qui présentaient des problèmes avec le nombre de fichiers dans un seul dossier - ce système est devenu inutilisable aux alentours de 5 000 (sous Windows 2000 Advanced Server avec une application en C#.Net 1.1) - la seule solution sensée que nous avons trouvée était de modifier la structure des dossiers afin qu'il y ait un nombre plus raisonnable de fichiers.Il est intéressant de noter qu'Explorer expirerait également !

La convention que nous avons élaborée était une structure qui décomposait la structure en années, mois et jours - mais cela dépendra de votre système et de votre capacité à contrôler la structure des répertoires...

Autres conseils

Séparez-les définitivement.Cela dit, restez aussi loin que possible du service d’indexation.

Aucun..NET s'appuie sur des appels d'API Windows sous-jacents qui détestent vraiment, vraiment, cette quantité de fichiers eux-mêmes.

Comme le dit Ronnie :les diviser.

Tu pourrais utiliser DOS ?

DIR /s/b > Files.txt

Vous pouvez également envisager d'indexer les fichiers vous-même ou d'obtenir une application tierce comme Google Desktop ou copernique pour le faire, puis interfacer avec leur index.Je sais que Copernic dispose d'une API que vous pouvez utiliser pour rechercher n'importe quel fichier dans son index et qu'elle prend également en charge le mappage des lecteurs réseau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top