Frage von Fireflice, 22

Windows Dateisuche per (Visual Studio) Windows Forms Anwendung oder Excel vba code?

Hallo Zusammen,

ich möchte gerne über eine Windows Forms Anwendung (mit TextBox und Button) das System nach Dateien (Inhalt und/oder Namen) durchsuchen und alle Dateien, bei denen die Suche etwas ergeben hat in einen bestimmten Ordner schieben.

Für das Verschieben einer Datei in einen Ordner habe ich bereits einen Code geschrieben, ich habe aber noch Probleme mit der Dateisuche (soll aufgebaut sein wie die "Windows durchsuchen" Funktion auf dem Computer).

Kann mir da jemand weiterhelfen? Ich habe unten noch eine Grafik als Beispiel angehängt, wie die Windows Form Anwendung aussehen soll.

Vielen Dank schon mal!

Antwort
von mondai, 17

Im Prinzip liest du nur alle Ordner und Dateien vom Laufwerk aus,
der Reihe nach ein. Ist dein aktueller Fund eine Datei,
kannst du diese öffnen und ihren Inhalt durchsuchen.
Hast du einen Ordner erwischt, rufst du die gleiche Funktion, die bereits das aktuelle Verzeichnis durchsucht mit dem aktualisierten Pfad auf.
Wenn ein Unterverzeichnis fertig gescannt wurde, geht es an der gleichen Stelle weiter an der, die Funktion aufgerufen wurde.
Der aktualisierte Pfad sollte natürlich nicht den Originalpfad überschreiben!

Hier gibt es ein paar Infos zum Auflisten von Verzeichnissen und Dateien:
https://msdn.microsoft.com/de-de/library/dd997370(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-4

Und hier eine Beschreibung zur DirectoryInfo-Klasse:
https://msdn.microsoft.com/de-de/library/system.io.directoryinfo(v=vs.110).aspx

Ich hoffe das hilft dir schon weiter. ミ:)

PS: Auf den Seiten kannst du es dir auch in VBA anzeigen lassen. ;p

Antwort
von greenvbuser, 8

Beschäftige dich mal mit Rekursion, das wirst du brauchen. Und mach dich drauf gefasst, dass dieses Programm seeeeeehr lange brauchen wird. Vergleichbar mit dem Suchlauf eines Anti-Viren-Programms.

Vergiss nicht, die Suche in einen neuen Thread auszulagern, damit sich die Benutzeroberfläche nicht aufhängt!

Keine passende Antwort gefunden?

Fragen Sie die Community