2009-08-04 6 views

答えて

12

このコードフラグメントは、マシン上のすべての論理ドライブのリストを取得し、ドライブ上のすべてのフォルダを検索して、ファイル名 "Cheese.exe"と一致するファイルを探します。ループが完了すると、一覧表「のファイルは、」

 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

ほとんどの場合、SearchOption –

+0

を追加する必要があります。与えられたディレクトリにアクセスできないとどうなりますか?「ドキュメントと設定」:) –

+0

はい、いくつかの例外処理が必要です。フロッピードライブは準備ができていないため、ほとんどのマシンで使用できます。これは、GetFilesメソッドの構文を示していますが、これは必要なものです。 –

2

が含まれていますが、複数のディレクトリを検索する仕組みについて少し詳細をお知りになりたい場合、グーグルはthis postを明らかにしました。それはあなた自身のディレクトリを介して再帰の良い解決策と説明を持っています。ファイル指定をDirectory.GetFilesに変更すると、検索文字列と一致するようになり、そのまま使用することができます。

関連する問題