我需要使用非空递归目录路径填充字符串列表。
使用此代码我可以获取目录路径和子文件夹的数量:
string path = Environment.ExpandEnvironmentVariables(@"f:\PAB\");
int directoryCount = System.IO.Directory.GetDirectories(@path).Length;
string[] directoryArray = Directory.GetDirectories(path);
我想填充一个不是空目录的新列表字符串
我想也许我可以使用这段代码:
for (int i = 0; i < directoryCount; i++)
{
if (Directory.GetFiles(directoryArray[i]).Length != 0)
但是我对c#完全是新手,我不知道怎么能这样做。
答案 0 :(得分:1)
我想填充一个不是空目录的新列表字符串
如果您将非空目录视为“肯定有文件”,那么这可能是一个选项:
string path = @"yourpath";
List<string> non_empty_dirs = System.IO.Directory.GetDirectories(path, "*", SearchOption.AllDirectories)
.Where(x => Directory.GetFiles(x).Length != 0).ToList();
这将提取包含子文件夹的所有文件夹。
如果只需要顶级目录,请使用SearchOption.TopDirectoryOnly
。
如果非空意味着“肯定有文件或有子文件夹”,则需要将此过滤器也包含在where条件中:
.Where(x => Directory.GetFiles(x).Length != 0 ||
Directory.GetDirectories(x).Length != 0 ).ToList();
答案 1 :(得分:0)
解决了这段代码:
string path = Environment.ExpandEnvironmentVariables(@“f:\ PAB \”); int directoryCount = System.IO.Directory.GetDirectories(@path).Length;
$ sysctl -w net.core.rmem_max=value