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: 115122

115122 (Level 1)

16.04.2014, aktualisiert 17.04.2014, 1612 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: 115122
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: 115122
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 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"

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: 115122
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: 115122
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: 115122
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 ..
Ähnliche Inhalte
Mac OS X
Probleme mit Freigegebener MAC Festplatte

Frage von mark16 zum Thema Mac OS X ...

Batch & Shell
Ordnernamen aus Dateinamen erstellen (1)

Frage von Dr.Byte zum Thema Batch & Shell ...

C und C++
gelöst Wie spreche ich diese Cpp Datei unter CSharp an (1)

Frage von Aicher1998 zum Thema C und C ...

Festplatten, SSD, Raid
RAID System - defekte Festplatte (4)

Frage von Markowitsch zum Thema Festplatten, SSD, Raid ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (15)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (14)

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

Java
gelöst Net user per script aus txt oder csv für FTP (12)

Frage von OlliPWS zum Thema Java ...