从目录集中提取特定目录
extract particular directories from the set of directories
我有一个名为 serverpath 的路径目录,它是可配置的。
例如
serverpath=@"C:\AAA\New folder\";
服务器路径中有大量目录。采用以下格式:
serverpath\ID1\ID2\FileType\YYYY\MM\DD.MM.YYYY
i.e. C:\AAA\New folder3617.01.2017
当我打电话时
Directory.EnumerateDirectories(serverpath, "*", System.IO.SearchOption.AllDirectories)
我得到了所有的目录,但我只想要给定格式的路径。
到目前为止,我已经尝试添加“??.??.?????” EnumerateDirectories 方法中的模式
Directory.EnumerateDirectories(serverpath, "??.??.????", System.IO.SearchOption.AllDirectories)
但我仍然得到这样的路径:
C:\AAA\New folder36\pdf17
C:\AAA\New folder36\txt17
我只想要这样的路径:
C:\AAA\New folder36\pdf17.01.2017
C:\AAA\New folder36\txt17.01.2017
并排除目录中的所有其他路径
除了计算斜杠之外,还有其他方法可以做到这一点吗?
编辑:有没有办法获取目录中最后一个文件夹的目录路径? “01.01.2017”文件夹是各自目录中的最后一个文件夹。
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace ConsoleApp
{
class Program
{
static void Main()
{
string serverpath = @"C:\AAA\New folder\";
Regex re = new Regex(@"\d{2}\.\d{2}\.\d{4}");
var dirs = from dir in
Directory.EnumerateDirectories(serverpath, "*", SearchOption.AllDirectories)
where re.IsMatch(dir)
select dir;
}
}
}
这似乎有效。对不起,如果我误解了 - 我是新手。
\d = digit
{} = quantifier (of what is left of the quantifier)
. = any character (NOT OF ANY USE HERE)
\. = explicit dot
我有一个名为 serverpath 的路径目录,它是可配置的。 例如
serverpath=@"C:\AAA\New folder\";
服务器路径中有大量目录。采用以下格式:
serverpath\ID1\ID2\FileType\YYYY\MM\DD.MM.YYYY
i.e. C:\AAA\New folder3617.01.2017
当我打电话时
Directory.EnumerateDirectories(serverpath, "*", System.IO.SearchOption.AllDirectories)
我得到了所有的目录,但我只想要给定格式的路径。
到目前为止,我已经尝试添加“??.??.?????” EnumerateDirectories 方法中的模式
Directory.EnumerateDirectories(serverpath, "??.??.????", System.IO.SearchOption.AllDirectories)
但我仍然得到这样的路径:
C:\AAA\New folder36\pdf17
C:\AAA\New folder36\txt17
我只想要这样的路径:
C:\AAA\New folder36\pdf17.01.2017
C:\AAA\New folder36\txt17.01.2017
并排除目录中的所有其他路径
除了计算斜杠之外,还有其他方法可以做到这一点吗?
编辑:有没有办法获取目录中最后一个文件夹的目录路径? “01.01.2017”文件夹是各自目录中的最后一个文件夹。
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace ConsoleApp
{
class Program
{
static void Main()
{
string serverpath = @"C:\AAA\New folder\";
Regex re = new Regex(@"\d{2}\.\d{2}\.\d{4}");
var dirs = from dir in
Directory.EnumerateDirectories(serverpath, "*", SearchOption.AllDirectories)
where re.IsMatch(dir)
select dir;
}
}
}
这似乎有效。对不起,如果我误解了 - 我是新手。
\d = digit
{} = quantifier (of what is left of the quantifier)
. = any character (NOT OF ANY USE HERE)
\. = explicit dot