2016-07-29 174 views
1

我试图在最新创建的文件夹中找到最新的.XML文件。我想这是一个简单的解决方案,但对于我来说,作为一个新手,它使我的头发变灰。如何通过Directoryinfo获取最新文件的完整路径

我的代码:

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只包含最新的目录的名称,而不是完整路径。我(当然)得到一个错误,因为没有它的路径找不到目录。

+0

这似乎不像你试过,所以你有一个runfrom这是一个路径,然后你得到newestdir,这是该文件夹中的文件名..所以runfrom + newestdir +文件?更别提看目录信息选项 – BugFinder

+0

_newestdir_是一个文件夹,而不是文件。如果我建立一个字符串,我不能使用它的getfiles。我已经尝试 – Mahobo

+0

不,但是当你想使用文件名........你可以选择使用directoryinfo来拉动newestdir的全名,或链runfrom + newesdir +文件.... – BugFinder

回答

1

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

全名 - 获取目录或文件的完整路径(从 FileSystemInfo继承。)


然而,似乎你不。不需要完整的路径 - 你可以使用我的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(); 
+0

这正是我想要做的。非常感谢你! 现在我可以用 字符串full = dir + @“\”+ newestdir.ToString()+ @“\”+ file.ToString()创建完整字符串。 – Mahobo