-4

したがって、現在、正規表現パターンとlinqフィルタリングを介して必要なディレクトリのリストがあります。特定の数のディレクトリを含むフォルダーを取得し、1 を含まないフォルダーをスキップする方法と、ディレクトリ情報が空かどうかを確認する方法が必要です。助言がありますか ?だからこれは私がこれまで持っているものです

DirectoryInfo root = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test"); var dirs = new List(); dirs = root.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS"))). Where(d => d.GetFiles().Length > 3).ToList();

  foreach (DirectoryInfo dir in dirs)
  {
    Console.WriteLine(dir.FullName);
  }

誰かがここからそれをフィルタリングする方法を教えてもらえますか、またディレクトリ取得機能で * が意味することは何ですか

4

1 に答える 1

0

出発点は次のとおりです。

var diProjects = new DirectoryInfo(@"C:\Projects");
var subFolders = diProjects.GetDirectories();
for (var i = 0; i < subFolders.Length; i++)
{
    Console.WriteLine(string.Format("[{0}] {1}, directories = {2}, files = {3}"
        , i
        , subFolders[i].FullName
        , subFolders[i].GetDirectories().Length
        , subFolders[i].GetFiles().Length));
}

次の行は、指定されたフォルダー内のディレクトリの数を取得します。それが 0 に等しいかどうか、またはチェックする必要がある値かどうかを確認できます。

subFolders[i].GetDirectories().Length

また、次を使用して、サブディレクトリ内のファイル数を取得できます

subFolders[i].GetFiles().Length

subFolders[i].GetDirectories().Lengthとの両方subFolders[i].GetFiles().Lengthが 0 の場合、サブディレクトリは空であると見なすことができます。このコードをテンプレートとして使用して、必要なことを実行できるはずです。

于 2016-05-25T02:44:50.320 に答える