Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 标识以特定字符串开头的子文件夹是否存在_C# - Fatal编程技术网

C# 标识以特定字符串开头的子文件夹是否存在

C# 标识以特定字符串开头的子文件夹是否存在,c#,C#,我想知道某个文件夹是否有以特定名称开头的子文件夹 例如 在我的C:\Test文件夹中,我有GUI、TCP、PLC、PLC\U 1、PLC\U 2等文件夹。。。可编程逻辑控制器 我可能有也可能没有PLC文件夹。我想检查这些文件夹是否存在。如果它们存在,我想提取所有这些文件夹的名称。您可以使用 如果有多个子目录,则更有效的方法是使用延迟执行的,在开始处理之前,不需要将所有子目录加载到内存中: var plcDirs = Directory.EnumerateDirectories(@"C:\Test

我想知道某个文件夹是否有以特定名称开头的子文件夹

例如

在我的C:\Test文件夹中,我有GUI、TCP、PLC、PLC\U 1、PLC\U 2等文件夹。。。可编程逻辑控制器


我可能有也可能没有PLC文件夹。我想检查这些文件夹是否存在。如果它们存在,我想提取所有这些文件夹的名称。

您可以使用

如果有多个子目录,则更有效的方法是使用延迟执行的,在开始处理之前,不需要将所有子目录加载到内存中:

var plcDirs = Directory.EnumerateDirectories(@"C:\Test", "PLC*", SearchOption.TopDirectoryOnly);
MSDN:

EnumerateDirectory和GetDirectory方法的区别如下: 使用EnumerateDirectory时,可以开始枚举 返回整个集合之前的名称集合;当你 使用GetDirectory时,必须等待整个名称数组被删除 在您可以访问阵列之前返回。因此,当你 使用许多文件和目录时,枚举目录可以是 效率更高


您可以使用

如果有多个子目录,则更有效的方法是使用延迟执行的,在开始处理之前,不需要将所有子目录加载到内存中:

var plcDirs = Directory.EnumerateDirectories(@"C:\Test", "PLC*", SearchOption.TopDirectoryOnly);
MSDN:

EnumerateDirectory和GetDirectory方法的区别如下: 使用EnumerateDirectory时,可以开始枚举 返回整个集合之前的名称集合;当你 使用GetDirectory时,必须等待整个名称数组被删除 在您可以访问阵列之前返回。因此,当你 使用许多文件和目录时,枚举目录可以是 效率更高


您可以通过以下方式迭代子文件夹:

DirectoryInfo folder = new DirectoryInfo(path);
DirectoryInfo[] subfolders = directory.GetDirectories();

foreach(DirectoryInfo subfolder in subfolders) 
{
    //TODO: add logic here for your check. e.g.
    if (subfolder.name.StartsWith(somestring)) 
    {
        //TODO:
    }
}

您可以通过以下方式迭代子文件夹:

DirectoryInfo folder = new DirectoryInfo(path);
DirectoryInfo[] subfolders = directory.GetDirectories();

foreach(DirectoryInfo subfolder in subfolders) 
{
    //TODO: add logic here for your check. e.g.
    if (subfolder.name.StartsWith(somestring)) 
    {
        //TODO:
    }
}

使用以下命令,可以使用searchpattern搜索文件夹和子文件夹。它是最可靠的,因为当适当的权限不正确时,GetAll有时会失败


使用以下命令,您可以使用searchpattern搜索文件夹和子文件夹。它是最可靠的,因为当适当的权限不正确时,GetAll有时会失败


如果要查找的子目录的名称模式更复杂,可以使用正则表达式:

var subdirs = Directory.GetDirectories(@"C:\Test")
                       .Where(dir => Regex.IsMatch(dir, @"PLC_\d+"));

如果要查找的子目录的名称模式更复杂,则可以使用正则表达式:

var subdirs = Directory.GetDirectories(@"C:\Test")
                       .Where(dir => Regex.IsMatch(dir, @"PLC_\d+"));
@失恋ღ 只是我的脸上的一个修饰-所以。。。。谢谢你的拒绝。@breaknheartღ 只是我的脸上的一个修饰-所以。。。。谢谢你的拒绝。