有点麻烦我试图让最新的txt文件打开。 我正在使用一个按钮,我需要在一个catch中打开txt文件 事情是有几百个文本文件,我需要按日期和时间的最后一个文件
// ..............更新............. //
这是我的文件外观的更好示例 有一些额外的日志,他们内容更新
commandlog2012081410 (2012-08-14 / 01:01)
commandlog2012081411 (2012-08-14 / 10:30)
commandlog2012081412 (2012-08-14 / 12:36)
Sample2012082207 (2012-08-22 / 02:12)
Sample2012082208 (2012-08-22 / 06:28)
Sample2012082209 (2012-08-22 / 09:14)
faillog2012075671 (2012-07-17 / 01:20)
faillog2012075672 (2012-07-17 / 08:00)
faillog2012075673 (2012-07-17 / 09:00)
chargedlog203416771 (2012-07-05 / 20:36)
chargedlog203416772 (2012-07-05 / 21:20)
chargedlog203416773 (2012-07-05 / 22:42)
vanishlog2012324795 (2012-07-21 / 17:00)
vanishlog2012324796 (2012-07-21 / 19:31)
vanishlog2012324797 (2012-07-21 / 20:28)
debuglog123131231 (2012-08-22 / 05:10)
debuglog123131232 (2012-08-22 / 06:12)
debuglog123131233 (2012-08-22 / 09:14)
droplogg12313131 (2012-08-06 / 10:10)
droplogg12313132 (2012-08-06 / 16:41)
exitlog123131313 (2012-08-22 / 01:01)
exitlog123131314 (2012-08-22 / 01:12)
exitlog123131315 (2012-08-22 / 09:14)
log201123131 (2012-08-22 / 09:12)
log201123132 (2012-08-22 / 09:14)
我需要打开// Sample2012082209(2012-08-22 / 09:14)// 正如你可以看到一些其他txt文件在同一天同时结束,甚至可以选择那个文件并打开它
catch (Exception ex)
{
MessageBox.Show("Error" + ex.Message.ToString());
(Open newest Sample txt file here)
}
答案 0 :(得分:3)
您可以使用Linq和File.GetLastAccessTime
Method获取最后一个openend文件:
var openedFiles = from fName in Directory.EnumerateFiles(dir, "*.txt")
orderby File.GetLastAccessTime(fName) descending
select new FileInfo(fName);
if (openedFiles.Any())
{
var lastOpenedFile = openedFiles.First();
}
Directory.EnumerateFiles(dir, "*.txt")
仅返回txt
- 给定目录中的文件。
编辑:我担心这个问题仍然不明确,即使你已经编辑过,你也写过几条评论。但是,如果您只想要以给定名称开头的文件(f.e. “Sample”),则必须调整EnumerateFiles
的搜索模式:
var name = "Sample";
var openedFiles = from fName in Directory.EnumerateFiles(dir, name + "*.txt")
orderby File.GetLastAccessTime(fName) descending
select new FileInfo(fName);
答案 1 :(得分:0)
您可以使用DirectoryInfo类获取有关给定目录的信息。从那里你可以获得文件,并使用FileInfo类获取有关创建日期之类的信息。这是一个例子:
DirectoryInfo dirInfo = new DirectoryInfo(@"C:\");
foreach (FileInfo file in dirInfo.GetFiles())
{
DateTime creationdate = file.CreationTime;
}
如果您需要更多信息,请发表评论