【问题标题】:how to get fullpath to latest file via Directoryinfo如何通过 Directoryinfo 获取最新文件的完整路径
【发布时间】:2016-07-29 10:39:01
【问题描述】:

我正在尝试在最新创建的文件夹中找到最新的 .XML 文件。我想这是一个简单的解决方案,但对于我这个新手来说,它会让我的头发变白。

我的代码:

    string dir = runfrom + @"\results";
    string xml = "*.xml";
    DirectoryInfo newestdir = new DirectoryInfo(dir).GetDirectories().OrderByDescending(d => d.LastWriteTimeUtc).First();
    var dirInfo = new DirectoryInfo(newestdir.ToString());
    var file = (from f in dirInfo.GetFiles(xml) orderby f.LastWriteTime descending select f).First();

dirinfo 只包含最新目录的名称,而不包含完整路径。我(当然)得到一个错误,因为没有路径就找不到目录。

【问题讨论】:

  • 这似乎你没有尝试过,所以你有一个 runfrom,它是一个路径,然后你得到 latestdir,它是那个文件夹中的文件名.. 所以 runfrom+newestdir+file?更不用说查看目录信息选项了
  • newestdir 是文件夹,而不是文件。如果我建立一个字符串,我不能在它上面使用 getfiles。我已经试过了
  • 没有,但是当你想使用文件名时......你可以选择使用 directoryinfo 来提取最新目录的全名,或者链 runfrom+newesdir+file.. ..

标签: c# getfiles directoryinfo


【解决方案1】:

您可以使用DirectoryInfo.FullName 获取完整路径。

FullName - 获取目录或文件的完整路径。(继承自 文件系统信息。)


但是,您似乎不需要获取完整路径 - 您可以使用 DirectoryInfo 实例来枚举它的文件。

DirectoryInfo newestdir = new DirectoryInfo(dir).GetDirectories().OrderByDescending(d => d.LastWriteTimeUtc).First();
var file = (from f in newestdir.GetFiles(xml) orderby f.LastWriteTime descending select f).First();

【讨论】:

  • 这正是我想做的。非常感谢你!现在我可以用 string full = dir + @"\" + latestdir.ToString() + @"\" + file.ToString(); 构建完整的字符串
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
相关资源
最近更新 更多