所以现在我通过正则表达式模式和linq过滤得到了我想要的目录列表。我需要一种方法来获取包含一定数量目录的文件夹,并跳过没有1的目录,以及如何检查我的目录信息是否为空。有什么建议 ?所以这就是我到目前为止所拥有的
DirectoryInfo root = new DirectoryInfo(@" C:\ Users \ jphillips \ Desktop \ test"); var dirs = new List(); dirs = root.GetDirectories(" *",SearchOption.AllDirectories)。其中(d => reg.IsMatch(d.Name))。where((d =>!d.FullName.EndsWith (" TESTS")))。其中(d => d.GetFiles()。长度> 3)。ToList();
foreach (DirectoryInfo dir in dirs)
{
Console.WriteLine(dir.FullName);
}
有人可以告诉我如何从这里过滤它,以及*在get目录函数中的含义
答案 0 :(得分: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,那么您可以假设子目录为空。您应该能够使用此代码作为模板来执行您想要的操作。