首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从目录中获取特定的文件名模式

如何从目录中获取特定的文件名模式
EN

Stack Overflow用户
提问于 2021-12-17 05:53:50
回答 1查看 285关注 0票数 0

我正在尝试从目录中获取一个特定的文件名。我尝试过的代码如下所示

代码语言:javascript
复制
DirectoryInfo dirInfo = new DirectoryInfo(directoryPath);
FileInfo recentlyModLogFile = (from files in dirInfo.GetFiles("^Monarch_[0-9]{2}$") orderby files.LastWriteTime descending select files).First();
//Output : Error

文件名列表(输入)

代码语言:javascript
复制
Monarch_05bridge  //Date modified 16-12-2021 20:41
Monarch_04bridge  //Date modified 16-12-2021 06:49
Monarch_04  //Date modified 16-12-2021 05:39
Monarch_02  //Date modified 16-12-2021 05:49
Monarch_02bridge  //Date modified 14-12-2021 19:34
Monarch_01  //Date modified 14-12-2021 09:08

代码应该查找其文件名以Monarch_开头,后面跟着两个数字,然后筛选出最近修改的文件。

所以输出应该是Monarch_02

我也试着做

代码语言:javascript
复制
DirectoryInfo dirInfo = new DirectoryInfo(directoryPath);
FileInfo recentlyModLogFile = (from files in dirInfo.GetFiles(Monarch_ + "*") orderby files.LastWriteTime descending select files).First();
//OUtput : Monarch_05bridge 

有人能帮我解决这个问题吗。

EN

回答 1

Stack Overflow用户

发布于 2021-12-17 06:23:41

代码语言:javascript
复制
string youngestFile = Directory.GetFiles(directoryPath)
.Where(o => Regexp.Contains(Path.GetFileNameWithoutExtension(o), "Monarch_\\d\\d"))
.OrderByDescending(o => File.GetLastWriteTime(o))
.FirstOrDefault();

这是我的项目文件的快速复制和粘贴。Regexp.Contains()是我为做regexp比较而编写的简单方法之一。

注意我使用的正则表达式允许Monarch_02Monarch_02BridgeabcMonarch_09都是可能的结果。如果您需要严格的规则,可以使用"^Monarch_\\d\\d$"

有关细节,请参阅正则表达式

代码语言:javascript
复制
private static Match GetFirstMatch(string text, string pattern)
{
   Match match = Regex.Match(text, pattern, RegexOptions.None);
   return match;
}

public static Boolean Contains(string text, string pattern)
{
   return GetFirstMatch(text, pattern).Value != String.Empty;
}

基本上,使用Directory.GetFiles(path)获取所有文件,然后使用LINQ应用条件、订单和获取第一个结果。

在您处理文件系统时,路径目录文件类可以提供很大帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70388962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档