我的文件如下:
Test_221218_123.txt
Test_221218_456.txt
Test_221218_789.txt
此处为“ 221218”。我做了如下测试:
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container"></div>
为了测试,我通过的日期是静态的,仅用于测试目的,但是在投入生产时它将是一个变量。上面为我选择了所有文件。我需要选择最新文件(按日期)。
我尝试如下
var d = new DirectoryInfo(@"C:\");
var files = d.GetFiles().Where(f => f.Name.Contains("221218"));
第一个是我的所有var files = d.GetFiles().Where(f => f.Name.Contains("221218"));
//OR
var files = d.GetFiles().Where(f => f.Name.Contains("221218")).Select(f => f.LastWriteTime);
文件列表。第二个给我日期。如何选择最新文件?
答案 0 :(得分:2)
FileInfo latestByWriteTime = new DirectoryInfo( @"C:\" )
.GetFiles()
.Where( f => f.Name.Contains( "221218", StringComparer.OrdinalIgnoreCase ) )
.OrderByDescending( f => f.LastWriteTime )
.FirstOrDefault();
答案 1 :(得分:0)
您可以在OrderByDescending
属性上使用LastWriteTime
,然后在列表中选择第一个。这将如下所示:
var file = d.GetFiles().Where(f => f.Name.Contains("221218")).OrderByDescending(f => f.LastWriteTime).FirstOrDefault();
或者,您可以考虑使用DateTime.ToFileTime()
方法命名文件,然后可以选择时间戳最大的最新文件。
答案 2 :(得分:0)
检查此内容:
var d = new DirectoryInfo(@"C:\");
var files = d.GetFiles()
.Where(f => f.Name.Contains("221218"))
.OrderByDescending(f => f.LastWriteTime)
.FirstOrDefault();
还有日期
DateTime.Now.ToString("ddMMyy")
最终查询
var d = new DirectoryInfo(@"C:\");
var files = d.GetFiles()
.Where(f => f.Name.Contains(DateTime.Now.ToString("ddMMyy")))
.OrderByDescending(f => f.LastWriteTime)
.FirstOrDefault();