2009-08-04 8 views

Antwort

12

Dieses Codefragment ruft eine Liste aller logischen Laufwerke auf dem Computer ab und durchsucht dann alle Ordner auf dem Laufwerk nach Dateien, die dem Dateinamen "Cheese.exe" entsprechen. Nachdem die Schleife beendet ist, wird die Liste „Dateien“, um die

 var files = new List<string>(); 
    //@Stan R. suggested an improvement to handle floppy drives... 
    //foreach (DriveInfo d in DriveInfo.GetDrives()) 
    foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true)) 
    { 
     files.AddRange(Directory.GetFiles(d.RootDirectory.FullName, "Cheese.exe", SearchOption.AllDirectories)); 
    } 
+1

Fast - Sie müssen hinzufügen, in der SearchOption –

+0

was passiert, wenn Sie nicht Zugriff auf die geben Verzeichnis ... sagen "Dokumente und Einstellungen" :) –

+0

ja, einige Ausnahme Behandlung wird notwendig sein - das Fragment wird fehlschlagen die meisten Maschinen, weil das Diskettenlaufwerk nicht bereit ist. Es zeigt jedoch die Syntax für die GetFiles-Methode, die benötigt wird. –

2

enthält Wenn Sie ein wenig mehr über die Mechanik des Suchens mehrere Verzeichnisse wissen wollen, enthüllt googeln this post. Es hat eine gute Lösung und eine Erklärung von rekursiv durch Verzeichnisse selbst. Sie können die Dateispezifikation in Directory.GetFiles so ändern, dass sie Ihrer Suchzeichenfolge entspricht, und sie wahrscheinlich so verwenden, wie sie ist.

Verwandte Themen