对于我的编码技巧,我有一个简单但非常艰巨的任务.
基本上我有一个任务来解析特定文件夹中的所有文件名(这执行正常)但是我必须比较这些文件名并选择文件名特定部分中具有最新(最大)编号的文件名.一个例子:
0074-105-NVK.1.p7.ver.1.pdf
0074-105-NVK.1.p7.ver.2.pdf
0074-105-NVK.1.p7.ver.3.pdf
Run Code Online (Sandbox Code Playgroud)
我感兴趣的部分是" ver.1 ",程序应选择最高的那个并删除其他文件.我真的不知道如何实现这个文件名比较.
我建议在正则表达式的帮助下提取版本信息并按此版本排序:
string[] files = new string[] {
"0074 - 105 - NVK.1.p7.ver.1.pdf",
"0074 - 105 - NVK.1.p7.ver.2.pdf",
"0074 - 105 - NVK.1.p7.ver.3.pdf", };
string pattern = @"ver\.(?<version>[0-9]+(\.[0-9]+)*)[^0-9]+$";
var result = files
.Select(file => new {
name = file,
ver = new Version(Regex.Match(file, pattern).Groups["version"].Value + ".0")
})
.OrderByDescending(item => item.ver)
.Select(item => item.name)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |