如何在c#中列出具有特定日期模式的所有子目录
本文关键字:日期 子目录 模式 | 更新日期: 2023-09-27 18:01:25
我有一个目录,它有FEB2014, MAR2013
等子目录。它也可以有Log或其他子目录。
我的问题是如何找到具有特定日期模式(对于我的情况是MMMyyyy
(的所有子目录,如FEB2014, MAR2013
。我更喜欢使用LINQ
。
使用类似于的DateTime.TryParseExact
DateTime temp;
var filtered = directories.Where(r => DateTime.TryParseExact(r,
"MMMyyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out temp))
.ToList();
这将只返回那些名称格式为MMMyyyy
的目录。考虑您的directories
阵列是否由以下组成:
//string[] directories = Directory.GetDirectories("yourPath");
string[] directories = new[]
{
"FEB2014",
"MAR2013",
"LOG",
"SOMETHING",
"APR2014",
"MAY2014"
};
上述查询将返回四条记录。
FEB2014
MAR2013
APR2014
MAY2014
请评论:
DirectoryInfo.GetDriectories
返回DirectoryInfo
对象的数组,而不是直接返回字符串名称。此外,您还需要为out参数传递一个DateTime
对象,您可以执行以下操作:
DateTime temp;
var dirInfo = new DirectoryInfo(MyApp.App_Code.Global.FileLocation)
.GetDirectories()
.Where(d => DateTime.TryParseExact(d.Name,
"MMMyyyy", CultureInfo.InvariantCulture,
DateTimeStyles.None,
out temp))
.OrderBy(d => d.LastAccessTime).Last();