Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CSharp Festplatte nach bestimmtem Ordnernamen durchsuchen

Frage Entwicklung Visual Studio

Mitglied: lordzwieback

lordzwieback (Level 1) - Jetzt verbinden

16.04.2014, aktualisiert 17.04.2014, 1588 Aufrufe, 10 Kommentare, 1 Danke

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
Mitglied: colinardo
LÖSUNG 16.04.2014, aktualisiert 17.04.2014
Hallo zwieback,
durchsucht alle Unterordner eines angegebenen Verzeichnisses und gibt sie dir aus....Beim Ordner-Namen kannst du auch mit Wildcards arbeiten.
01.
string[] dirs = System.IO.Directory.GetDirectories(@"c:\rootordner", "denOrdnerSucheIch", System.IO.SearchOption.AllDirectories); 
02.
if (dirs.Length > 0) 
03.
04.
    foreach (String dir in dirs) 
05.
06.
        MessageBox.Show(dir); 
07.
08.
09.
else 
10.
11.
    MessageBox.Show("Keinen Ordner gefunden!"); 
12.
}
Grüße Uwe
Bitte warten ..
Mitglied: SlainteMhath
16.04.2014 um 15:42 Uhr
Moin,

google, <10 sec, erster Treffer:

http://support.microsoft.com/kb/303974

lg,
Slainte
Bitte warten ..
Mitglied: lordzwieback
16.04.2014 um 15:53 Uhr
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 ?
Bitte warten ..
Mitglied: lordzwieback
16.04.2014 um 15:55 Uhr
Zitat von SlainteMhath:

Moin,

google, <10 sec, erster Treffer:

http://support.microsoft.com/kb/303974

lg,
Slainte

Da war ich auch schon, mein Kommentar mit den Rechten trifft ebenso hier zu.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 16.04.2014, aktualisiert 17.04.2014
Zitat von lordzwieback:

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"

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
Bitte warten ..
Mitglied: lordzwieback
17.04.2014 um 08:53 Uhr
Guten Morgen ;)

habe das Problem jetzt für mein Programm gelöst, oder es funktioniert zumindest so wie ich will.

Hier mal der Ausschnitt:

01.
String[] ordner = Directory.GetDirectories("C:\\", "Test"); 
02.
foreach (string ordnername in ordner) 
03.
04.
                gefunden.lbGefundeneOrdner.Items.Add(ordnername); 
05.
            }
Er schaut nun nach dem Ordner Test auf der lokalen Platte, falls er ihn findet, schreibt er den Pfad in eine Listbox.

Da der zu suchende Ordner nur unter C:\ , C:\Program Files\ oder C:\Program Files (x86) liegen kann, ist das hier für mich die einfachste Lösung.

Kleines Extra. Wenn einer der Ordner unter einem Pfad gefunden wird, soll dieser über einen Button gelöscht werden können.
Hier mal mein Code:

01.
private void btnLöschen_Click(object sender, EventArgs e) 
02.
03.
            string pfad = Convert.ToString(lbGefundeneOrdner.SelectedItem); 
04.
            //MessageBox.Show("Pfad: " + pfad); 
05.
            if (Directory.Exists(pfad)) 
06.
07.
                try 
08.
09.
                    Directory.Delete(pfad, true); 
10.
11.
 
12.
                catch (IOException f) 
13.
14.
                    MessageBox.Show(f.Message); 
15.
16.
17.
        }
Brauche ich hier noch bestimmte Parameter, die mir das Recht zum löschen geben ? Bekomme wieder gemeldet, dass ich nicht die nötigen Rechte besitze.
Als Admin starten hilft übrigens nicht. ;)

Vielen vielen Dank für eure bisherige Hilfe.
Bitte warten ..
Mitglied: colinardo
17.04.2014, aktualisiert um 09:16 Uhr
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
Bitte warten ..
Mitglied: lordzwieback
17.04.2014 um 09:17 Uhr
Zitat von colinardo:

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

Bedankt, werde mir das mal reinföhnen. ;)
Bitte warten ..
Mitglied: colinardo
17.04.2014, aktualisiert um 14:42 Uhr
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...
Bitte warten ..
Mitglied: lordzwieback
17.04.2014 um 15:00 Uhr
Zitat von colinardo:

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...

Wow, vielen Dank, werde mir das gleich mal anschauen.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Windows Server
gelöst Wo ist der Speicherplatz hin? Festplatte voll, aber womit? Windows Server 2012R2 (9)

Frage von Andinistrator1 zum Thema Windows Server ...

Benchmarks
gelöst Unterschied zwischen +12V und 12V Netzteil für Festplatte (9)

Frage von FelixW zum Thema Benchmarks ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...