c# - Suchen Sie in Verzeichnissen nach Tonnen von Dateien?

Translate

Ich verwende MSVE und habe meine eigenen Kacheln, die ich in Ebenen oben anzeige. Das Problem ist, dass es eine Menge davon gibt und sie sich auf einem Netzwerkserver befinden. In bestimmten Verzeichnissen gibt es etwas in der Größenordnung von mehr als 30.000 Dateien. Anfangs habe ich Directory.GetFiles aufgerufen, aber als ich anfing, in einer pseudorealen Umgebung zu testen, lief das Zeitlimit ab.

Was ist der beste Weg, um so viele Dateien programmgesteuert aufzulisten und zu durchlaufen?

Bearbeiten: Mein Mitarbeiter schlug vor, den MS-Indizierungsdienst zu verwenden. Hat jemand diesen Ansatz ausprobiert und (wie) hat er funktioniert?

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

Alle Antworten

Translate

Ich habe in der Vergangenheit an einem SAN-System mit Telefonie-Audioaufnahmen gearbeitet, bei denen Probleme mit der Anzahl der Dateien in einem einzelnen Ordner aufgetreten sind. Dieses System wurde in der Nähe von 5.000 unbrauchbar (unter Windows 2000 Advanced Server mit einer Anwendung in C # .Net 1.1). Die einzig sinnvolle Lösung bestand darin, die Ordnerstruktur so zu ändern, dass eine vernünftigere Anzahl von Dateien vorhanden war. Interessanterweise würde Explorer auch eine Auszeit nehmen!

Die Konvention, die wir uns ausgedacht haben, war eine Struktur, die die Struktur in Jahren, Monaten und Tagen aufgelöst hat - aber das hängt von Ihrem System ab und davon, ob Sie die Verzeichnisstruktur steuern können ...

Quelle
Translate

Teilen Sie sie auf jeden Fall auf. Halten Sie sich jedoch so weit wie möglich vom Indexdienst fern.

Quelle
Stu
Translate

Keiner. .NET basiert auf zugrunde liegenden Windows-API-Aufrufen, die diese Menge an Dateien selbst wirklich, wirklich hassen.

Wie Ronnie sagt: Teilen Sie sie auf.

Quelle
Translate

Sie könnten DOS verwenden?

DIR /s/b > Files.txt
Quelle
Translate

Sie können auch die Dateien selbst indizieren oder eine Drittanbieter-App wie Google Desktop oder herunterladenkopernischum es zu tun und dann mit ihrem Index zu verbinden. Ich weiß, dass Copernic eine API hat, mit der Sie nach Dateien in ihrem Index suchen können, und die auch die Zuordnung von Netzwerklaufwerken unterstützt.

Quelle