【问题标题】:How to Get and Use File Name from FileInfo如何从 FileInfo 中获取和使用文件名
【发布时间】:2017-12-12 02:17:06
【问题描述】:

所以基本上我要做的是获取 FileInfo 获取的文件的修改日期。希望代码能解释得更好一点。

DirectoryInfo prefetch = new DirectoryInfo("c:\\Windows\\Prefetch");
FileInfo[] log = prefetch.GetFiles("2*");
if (log.Length == 0)
    MessageBox.Show("Nothing Found");
else
    DateTime modified = System.IO.File.GetLastWriteTime(Convert.ToString(log));
    MessageBox.Show(Convert.ToString(modified));

上面的代码不起作用/做我想做的事。 s所以说在 Prefetch 中有一个名为 log2.txt 的文件。 FileInfo 会检测到它在那里,但我正在尝试显示该文件的修改日期。我知道如何查看它是否存在以及如何显示修改日期,但我不知道如何检索 FileInfo 找到的文件/文件的名称然后显示修改日期。任何建议或答案将不胜感激。

【问题讨论】:

  • 请注意,在 Windows 上 DateCreated 和 DateModified 不是确定性的。

标签: c# datetime fileinfo


【解决方案1】:

如果只有一个文件,我相信应该是file[0].LastWriteTime

【讨论】:

  • 这样行得通,有没有办法显示最近修改的那个?像 [0] 会显示第一个,但如果您不知道有多少,并且您想获得最新的,可以吗?
  • log.OrderByDesc(x=>x.LastWriteTime).FirstOrDefault()
【解决方案2】:

您可以在System.IO.FileSystemInfo.FileInfo查看 FileInfo 课程

要检索文件名和修改日期,您只需访问属性 Name 和 LastWriteTime

我修改了您的示例代码以显示日志数组中第一个元素的文件名。

DirectoryInfo prefetch = new DirectoryInfo("c:\\Windows\\Prefetch");
FileInfo[] log = prefetch.GetFiles("2*");
if (log.Length == 0)
    MessageBox.Show("Nothing Found");
else
   MessageBox.Show(log[0].Name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    相关资源
    最近更新 更多