【发布时间】:2017-01-06 11:23:13
【问题描述】:
我有一个名为 serverpath 的路径目录,它是可配置的。 例如。
serverpath=@"C:\AAA\New folder\";
在服务器路径中有大量目录。格式如下:
serverpath\ID1\ID2\FileType\YYYY\MM\DD.MM.YYYY
i.e. C:\AAA\New folder\123\456\2017\01\01.01.2017
当我打电话时
Directory.EnumerateDirectories(serverpath, "*", System.IO.SearchOption.AllDirectories)
我得到了所有目录,但我只想要给定格式的那些路径。
到目前为止,我已经尝试添加“??.??.????” EnumerateDirectories 方法中的模式
Directory.EnumerateDirectories(serverpath, "??.??.????", System.IO.SearchOption.AllDirectories)
但我仍然得到这样的路径:
C:\AAA\New folder\123\456\pdf\2017\01
C:\AAA\New folder\123\456\txt\2017\01
我只想要这样的路径:
C:\AAA\New folder\123\456\pdf\2017\01\01.01.2017
C:\AAA\New folder\123\456\txt\2017\01\01.01.2017
并排除目录中的所有其他路径
除了计算斜线之外还有其他方法吗?
编辑:有没有办法获取目录中最后一个文件夹的目录路径? “01.01.2017”文件夹是其各自目录中的最后一个文件夹。
【问题讨论】:
-
看起来是“.”在第一个“??”之后这导致了问题 - 我在包含多个语言子文件夹的调试文件夹中使用了类似的文件夹结构,并且列出了所有两个字符文件夹(de、es、fr、...)。当我将最终文件夹的格式更改为 01_01_2017 并将搜索字符串更改为“??_??_????” - 然后我只得到了所需的文件夹。
-
这对我来说不是一个选项..我不允许更改文件夹名称。
-
那么看起来您可能需要进行一些后期处理,因为它似乎是 EnumerateDirectories 的工作方式 - 尽管文档中没有任何内容可以说明。
标签: c# visual-studio-2013 .net-4.0