c# - Vous recherchez des répertoires pour des tonnes de fichiers?

Translate

J'utilise MSVE et j'ai mes propres tuiles que j'affiche en couches sur le dessus. Le problème est qu'il y en a une tonne et qu'ils sont sur un serveur réseau. Dans certains répertoires, il y a quelque chose 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 de manière programmée autant de fichiers?

Edit: 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é?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

J'ai travaillé sur un système SAN dans le passé avec des enregistrements audio de téléphonie qui avaient des problèmes avec le nombre de fichiers dans un seul dossier - ce système est devenu inutilisable quelque part près de 5000 (sur Windows 2000 Advanced Server avec une application en C # .Net 1.1) - la seule solution sensée que nous avons trouvée était de changer la structure des dossiers afin qu'il y ait un nombre plus raisonnable de fichiers. Il est intéressant de noter que l'explorateur aurait également expiré!

La convention que nous avons élaborée était une structure qui a brisé 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 ...

La source
Translate

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

La source
Stu
Translate

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

Comme le dit Ronnie: séparez-les.

La source
Translate

Vous pourriez utiliser DOS?

DIR /s/b > Files.txt
La source
Translate

Vous pouvez également examiner l'indexation des fichiers vous-même ou obtenir une application tierce telle que Google Desktop oucopernicpour le faire, puis interface avec leur index. Je sais que copernic a une API que vous pouvez utiliser pour rechercher n'importe quel fichier dans leur index et qu'il prend également en charge la cartographie des lecteurs réseau.

La source