Frage

Ich verwende MSVE und habe meine eigenen Kacheln, die ich in Ebenen darüber anzeige.Das Problem ist, dass es eine Menge davon gibt und sie sich auf einem Netzwerkserver befinden.In bestimmten Verzeichnissen gibt es mehr als 30.000 Dateien.Ursprünglich habe ich Directory.GetFiles aufgerufen, aber als ich mit dem Testen in einer pseudorealen Umgebung begann, kam es zu einer Zeitüberschreitung.

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

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

War es hilfreich?

Lösung

Ich habe in der Vergangenheit an einem SAN-System mit Telefon-Audioaufzeichnungen gearbeitet, bei dem es Probleme mit der Anzahl der Dateien in einem einzelnen Ordner gab – dieses System wurde bei etwa 5.000 unbrauchbar (unter Windows 2000 Advanced Server mit einer Anwendung in C#.Net 1.1) – Die einzig sinnvolle Lösung, die wir gefunden haben, bestand darin, die Ordnerstruktur so zu ändern, dass eine angemessenere Anzahl an Dateien vorhanden war.Interessanterweise kam es auch beim Explorer zu einer Zeitüberschreitung!

Die Konvention, die wir uns ausgedacht haben, war eine Struktur, die die Struktur in Jahre, Monate und Tage aufteilte – aber das hängt von Ihrem System ab und davon, ob Sie die Verzeichnisstruktur kontrollieren können ...

Andere Tipps

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

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

Wie Ronnie sagt:spalte sie auf.

Könnten Sie DOS verwenden?

DIR /s/b > Files.txt

Sie könnten auch überlegen, die Dateien entweder selbst zu indizieren oder eine Drittanbieter-App wie Google Desktop oder zu erwerben kopernik um es zu tun und dann mit ihrem Index zu verbinden.Ich weiß, dass Copernic über eine API verfügt, mit der Sie nach jeder Datei in ihrem Index suchen können, und die auch die Zuordnung von Netzlaufwerken unterstützt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top