14

ディレクトリが空かどうかを確認する必要があります。問題は、サブフォルダーにファイルが含まれているかどうかに関係なく、サブフォルダーが含まれている場合、ディレクトリを空と見なしたいことです。見ているパス内のファイルのみを気にします。このディレクトリはネットワーク経由でアクセスされるため、少し複雑になります。これについて最善の方法は何ですか?

4

2 に答える 2

33

メソッドのオーバーロードは、指定されたディレクトリ内に直接Directory.EnumerateFiles(string)含まれるファイルのみを返します。そこに含まれるサブディレクトリやファイルは返しません。

bool isEmpty = !Directory.EnumerateFiles(path).Any();

EnumerateFilesoverの利点はGetFiles、ファイルのコレクションがオンデマンドで列挙されることです。つまり、最初のファイルが返されるとすぐにクエリが成功します (これにより、ディレクトリ内の残りのファイルを読み取ることが回避されます)。

于 2012-06-17T13:29:42.200 に答える
9

おそらくこれ:

if (Directory.GetFiles(path).Length == 0)...... ;
于 2012-06-17T13:31:07.283 に答える