115122
16.04.2014, aktualisiert am 17.04.2014
2708
10
1
CSharp Festplatte nach bestimmtem Ordnernamen durchsuchen
Guten Tag
ich brauche als Bestandteil eines kleinen Programmes eine Funktion, welche meine Festplatte beispielsweise nach allen Ordnern mit dem Namen "Test" durchsucht.
Ich habe schon einiges ausgetestet, rekursive Suche, GetDirectories etc aber ich kriege es nicht so wirklich raus.
Vielleicht kann mir ja hier jemand helfen.
Vielen Dank schonmal in Voraus.
Grüße
ich brauche als Bestandteil eines kleinen Programmes eine Funktion, welche meine Festplatte beispielsweise nach allen Ordnern mit dem Namen "Test" durchsucht.
Ich habe schon einiges ausgetestet, rekursive Suche, GetDirectories etc aber ich kriege es nicht so wirklich raus.
Vielleicht kann mir ja hier jemand helfen.
Vielen Dank schonmal in Voraus.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 235750
Url: https://administrator.de/contentid/235750
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo zwieback,
durchsucht alle Unterordner eines angegebenen Verzeichnisses und gibt sie dir aus....Beim Ordner-Namen kannst du auch mit Wildcards arbeiten.
Grüße Uwe
durchsucht alle Unterordner eines angegebenen Verzeichnisses und gibt sie dir aus....Beim Ordner-Namen kannst du auch mit Wildcards arbeiten.
string dirs = System.IO.Directory.GetDirectories(@"c:\rootordner", "denOrdnerSucheIch", System.IO.SearchOption.AllDirectories);
if (dirs.Length > 0)
{
foreach (String dir in dirs)
{
MessageBox.Show(dir);
}
}
else
{
MessageBox.Show("Keinen Ordner gefunden!");
}
Zitat von @115122:
Ja so ähnlich hatte ich das auch schon, jedoch meint er bei mir, wohl wegen der "alldirectories" suchoption, dass
ich nicht genügend Rechte besitze, was ich aber als Administrator definitiv haben sollte, oder ?
Nein, nicht auf alle Ordner, z.B. "c:\SystemVolumeInformation"Ja so ähnlich hatte ich das auch schon, jedoch meint er bei mir, wohl wegen der "alldirectories" suchoption, dass
ich nicht genügend Rechte besitze, was ich aber als Administrator definitiv haben sollte, oder ?
In diesem Fall musst du die Recursion manuell machen und die Unauthorized-Exception bei jedem Ordner-Aufruf mit einem Try-Catch Konstrukt abfangen:
http://stackoverflow.com/questions/172544/ignore-folders-files-when-dir ...
Grüße Uwe
Hi,
der ProgramFiles Ordern ist wieder speziell, hier kommt die UAC ins Spiel. Dazu musst du deine App "elevated" starten. Wie du dies machen kannst steht hier:
http://stackoverflow.com/questions/2282448/windows-7-and-vista-uac-prog ...
Bestimmte Ordner musst du erst in deinen Besitz nehmen bevor du sie löschen kannst.
Eventuell enthält der Ordner auch andere Dateien bei denen die Vererbung unterbrochen ist und du keine Rechte auf bestimmte Dateien hast. Dann musst du zunächst die Rechte entsprechend rekursiv anpassen.
Grüße Uwe
der ProgramFiles Ordern ist wieder speziell, hier kommt die UAC ins Spiel. Dazu musst du deine App "elevated" starten. Wie du dies machen kannst steht hier:
http://stackoverflow.com/questions/2282448/windows-7-and-vista-uac-prog ...
Bestimmte Ordner musst du erst in deinen Besitz nehmen bevor du sie löschen kannst.
Eventuell enthält der Ordner auch andere Dateien bei denen die Vererbung unterbrochen ist und du keine Rechte auf bestimmte Dateien hast. Dann musst du zunächst die Rechte entsprechend rekursiv anpassen.
Grüße Uwe
Hab dir dazu mal eine Demo gebaut, die du hier herunterladen kannst: FindFoldersProject_235750.zip. Im ZIP-File findest du die fertige EXE und das VS2010 Projekt.
Du startest die Anwendung mit Rechtsklick "Als Admin starten". Dann kannst du nach Ordnern suchen, beachte dabei das du in der Suchbox mit Regular-Expressions arbeiten kannst. Die Ordner die die Anwendung wegen fehlender Zugriffsrechte nicht durchsuchen kann werden, falls welche vorhanden, werden dir am Ende der Suche angezeigt. Um einen Ordner zu löschen markiere Ihn in der Listbox und drücke die ENTF-Taste. Die Anwendung übernimmt vorsorglich den Besitz des Ordners inkl. Unterordner mit takeown wenn dieser gelöscht werden soll.
Vielleicht hilft dir das etwas weiter in deinem Projekt.
Grüße Uwe
p.s. Das Programm erhebt keinen Anspruch auf Vollständigkeit...
Du startest die Anwendung mit Rechtsklick "Als Admin starten". Dann kannst du nach Ordnern suchen, beachte dabei das du in der Suchbox mit Regular-Expressions arbeiten kannst. Die Ordner die die Anwendung wegen fehlender Zugriffsrechte nicht durchsuchen kann werden, falls welche vorhanden, werden dir am Ende der Suche angezeigt. Um einen Ordner zu löschen markiere Ihn in der Listbox und drücke die ENTF-Taste. Die Anwendung übernimmt vorsorglich den Besitz des Ordners inkl. Unterordner mit takeown wenn dieser gelöscht werden soll.
Vielleicht hilft dir das etwas weiter in deinem Projekt.
Grüße Uwe
p.s. Das Programm erhebt keinen Anspruch auf Vollständigkeit...