我想知道某个文件夹是否包含以特定名称开头的子文件夹.
对于Eg.
在我的C:\ Test文件夹中,我有GUI,TCP,PLC,PLC_1,PLC_2 ...... PLC_n等文件夹.
我可能有也可能没有PLC_文件夹.我想检查这些文件夹是否存在.如果它们存在,我想提取所有这些文件夹的名称.
你可以使用重载 Directory.GetDirectories
string[] plcDirs = Directory.GetDirectories(@"C:\Test", "PLC*", SearchOption.TopDirectoryOnly);
if(plcDirs.Any())
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果存在许多子目录,则使用延迟执行更有效,EnumerateDirectories在开始处理之前不需要将所有内容加载到内存中:
var plcDirs = Directory.EnumerateDirectories(@"C:\Test", "PLC*", SearchOption.TopDirectoryOnly);
Run Code Online (Sandbox Code Playgroud)
MSDN:
EnumerateDirectories和GetDirectories方法的不同之处如下:使用EnumerateDirectories时,可以在返回整个集合之前开始枚举名称集合; 当您使用GetDirectories时,您必须等待返回整个名称数组,然后才能访问该数组.因此,当您使用许多文件和目录时,EnumerateDirectories可以更高效.