【发布时间】:2012-08-30 14:47:55
【问题描述】:
我有一个遵循以下模式的文件路径:
Some\File\Path\Base\yyyy\MM\dd\HH\mm\Random8.3
我想提取 2012 年及以后的所有内容,但问题是虽然右侧是标准的,但每条记录的基本目录可能不同。
这里有两个例子:
C:\Temp\X\2012\08\27\18\35\wy32dm1q.qyt
返回:2012\08\27\18\35\wy32dm1q.qytD:\Temp\X\Y\2012\08\27\18\36\tx84uwvr.puq
返回:2012\08\27\18\36\tx84uwvr.puq
现在我正在获取LastIndexOf(Path.DirectorySeparatorChar) N 次以在 2012 年之前获取字符串的索引,然后从该索引获取子字符串。但是,我有一种感觉,也许有更好的方法?
【问题讨论】:
-
我要撤回我的答案,我只是注意到您问题中的“及以后”。我会编写一个匹配正则表达式“\\\\d{4}\\”的函数,将以下 10 个字符转换为 DateTime,然后与 01-01-2012 进行比较。不幸的是,我缺乏正则表达式方面的专业知识,无法提供权威的答案。
-
你的应用中有这个基本目录作为变量吗?
-
您也可以使用正则表达式,但为什么呢?在 for 循环中拍打 LastIndexOf 并可能将其包装在自己的方法中就足够了。
-
@ajay_whiz:来自配置文件,可以随时更改,因为它只用于生成完整路径(部分结束路径需要根据约定计算)。