-2

重複の可能性:
完全な再帰的なディレクトリとファイルのスキャンを実行するにはどうすればよいですか?

内部のすべてのファイルとそのすべてのサブフォルダーのファイルを含む、C#で完全なディレクトリリストを作成する方法に関する情報が見つかりません。

c:\a.jpg
c:\b.php
c:\c\d.exe
c:\e\f.png
c:\g\h.mpg
4

2 に答える 2

6

DirectoryInfo.GetFiles( "C:\ *。*"、SearchOption.AllDirectories);を使用できます。

FileInfoこれにより、ファイル名のNameプロパティとFullNameプロパティを含むオブジェクトの配列が返されます。

そうは言っても、巨大な配列を返すので、「C:\」ではこれを行いませんが、この手法は適切なフォルダーで正しく機能します。

.NET 4を使用している場合は、代わりにEnumerateFilesIEnumerable<T>を使用することをお勧めします。これにより、配列の代わりに返されます。

ただし、ファイルシステムを検索するには完全なアクセス許可が必要なため、上記のコードは失敗する可能性が高いことに注意してください。検索しようとしているファイルシステムの特定の部分にアクセスできない場合、SecurityExceptionが発生します。

また、完全な情報ではなくファイル名のみに関心がある場合は、代わりにDirectory.EnumerateFilesを使用できます。これにより、関連するすべてのファイル名を含むが返されます。FileInfoIEnumerable<string>

于 2012-05-30T21:04:05.427 に答える
0

これを行うためのコード例が記載されたMSDNの記事があります。

これはお金です:

void DirSearch(string sDir) 
{
    try 
    {
        foreach (string d in Directory.GetDirectories(sDir)) 
        {
            foreach (string f in Directory.GetFiles(d, txtFile.Text)) 
            {
                lstFilesFound.Items.Add(f);
            }
            DirSearch(d);
        }
    }
    catch (System.Exception excpt) 
    {
        Console.WriteLine(excpt.Message);
    }
}
于 2012-05-30T21:07:15.007 に答える