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