2016-07-29 170 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