获取目录下的子文件夹列表
Get a list of the sub folders under a directory
好的,这是我目前的问题:
这是我的主要内容:
//System prompts user the type of archiving which will direct to the correct directory to set as root
Console.WriteLine("Enter the type of archiving you would like to do?");
string archivetype = Console.ReadLine();
//function that identifies which candidates to archive
Archive(archivetype, 20, 20);
//keep the application in debug mode
Console.ReadKey();
存档方法:
//Archive method determines which directory to search in and how many versions to archive
static void Archive(string archivetype, int pversion, int version)
{
//regex pattern to get folder names of the type #.#.#.#/#. something
Regex reg = new Regex(@"\d+(\.\d+)+");
//setting where to start looking
DirectoryInfo root = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test\parent\ACE-3_0");
var dirs = new List<DirectoryInfo>();
//i want to make a recursive call to all the folders in my root directory to obtain all the folders with the regex pattern above that are not empty and do not have 3 files inside
WalkDirectoryTree(root);
}
最终遍历目录树方法
//so im using the walk directory tree on the microsoft website i need a way to have a sort of a global array to keep adding the directories that fit through the patterns mentioned above without resetting itself after each walkdirectorytree call
static void WalkDirectoryTree(System.IO.DirectoryInfo root)
{
DirectoryInfo[] subDirs = null;
// Now find all the subdirectories under this root directory.
subDirs = root.GetDirectories();
foreach (DirectoryInfo dir in subDirs)
{
//dirs is not global so it doesnt work here and i believe if i put a local array that it will reset itself everytime
dirs = root.GetDirectories("*", SearchOption.TopDirectoryOnly).Where(d => reg.IsMatch(d.Name)).ToList();
if()
WalkDirectoryTree(dir);
}
}
所以我在这一点上真的迷路了我希望能够调用 walkdirectorytree 递归地遍历我目录的所有文件夹和子文件夹,以提取具有正则表达式模式且不为空且没有 3 的路径tp 中的文件为我提供了这些文件夹路径的列表。
您可以通过 GetDirectories
的重载在一次调用中获取所有文件夹和子文件夹。
您传入了一个搜索字符串 - 但不幸的是不是正则表达式,并且 SearchOption.AllDirectories
作为第二个参数。然后您可以通过正则表达式传递结果以找到您感兴趣的结果。
好的,这是我目前的问题:
这是我的主要内容:
//System prompts user the type of archiving which will direct to the correct directory to set as root
Console.WriteLine("Enter the type of archiving you would like to do?");
string archivetype = Console.ReadLine();
//function that identifies which candidates to archive
Archive(archivetype, 20, 20);
//keep the application in debug mode
Console.ReadKey();
存档方法:
//Archive method determines which directory to search in and how many versions to archive
static void Archive(string archivetype, int pversion, int version)
{
//regex pattern to get folder names of the type #.#.#.#/#. something
Regex reg = new Regex(@"\d+(\.\d+)+");
//setting where to start looking
DirectoryInfo root = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test\parent\ACE-3_0");
var dirs = new List<DirectoryInfo>();
//i want to make a recursive call to all the folders in my root directory to obtain all the folders with the regex pattern above that are not empty and do not have 3 files inside
WalkDirectoryTree(root);
}
最终遍历目录树方法
//so im using the walk directory tree on the microsoft website i need a way to have a sort of a global array to keep adding the directories that fit through the patterns mentioned above without resetting itself after each walkdirectorytree call
static void WalkDirectoryTree(System.IO.DirectoryInfo root)
{
DirectoryInfo[] subDirs = null;
// Now find all the subdirectories under this root directory.
subDirs = root.GetDirectories();
foreach (DirectoryInfo dir in subDirs)
{
//dirs is not global so it doesnt work here and i believe if i put a local array that it will reset itself everytime
dirs = root.GetDirectories("*", SearchOption.TopDirectoryOnly).Where(d => reg.IsMatch(d.Name)).ToList();
if()
WalkDirectoryTree(dir);
}
}
所以我在这一点上真的迷路了我希望能够调用 walkdirectorytree 递归地遍历我目录的所有文件夹和子文件夹,以提取具有正则表达式模式且不为空且没有 3 的路径tp 中的文件为我提供了这些文件夹路径的列表。
您可以通过 GetDirectories
的重载在一次调用中获取所有文件夹和子文件夹。
您传入了一个搜索字符串 - 但不幸的是不是正则表达式,并且 SearchOption.AllDirectories
作为第二个参数。然后您可以通过正则表达式传递结果以找到您感兴趣的结果。