2012-03-13 94 views
0

我有一個客戶希望能夠使用自動增量系統將文件保存到特定目錄(NNN.fileextension),其中第一個上傳的文件以名稱「 001「,第二個」002「等等。然而,這一切都很好,我很難理解如何能夠遍歷目錄中的現有文件,並根據前面指定的文件名模式找到上傳的最後一個文件。Directory.GetFiles搜索模式

如何循環瀏覽文件,確定文件是否具有「NNN」模式(N表示數字)並獲取最後上傳的文件?

回答

0

你可以使用Directory.GetFiles(string, string)其接受文件作爲第二個參數搜索模式(問號?作爲單個字符佔位符)。

因此,要查找最大id,您應該遍歷找到的文件,將文件名轉換爲整數值並選擇最大值。

var maxId = Directory.GetFiles("w:\\", "???.fileextension") 
    .Select(file => int.Parse(Path.GetFileNameWithoutExtension(file))) 
    .Max(); 
0

您可以按創建日期排序,然後取第一個。

int maxFileId = 0; 
     foreach (string file in Directory.GetFiles("c:\\")) 
     { 
      try 
      { 
       string currentFile = System.IO.Path.GetFileName(file).Replace("." + System.IO.Path.GetExtension(file), ""); 
       if (int.Parse(currentFile) > maxFileId) 
        maxFileId = int.Parse(currentFile); 
      } 
      catch 
      { 
      } 
     } 
     //maxFileId will give the last file 
+0

但的確如此,可能會有一段時間自動遞增被關閉,如果文件名不是自動遞增文件之一呢? – mattgcon 2012-03-13 06:59:09

+0

請在上面找到更新的答案。 – PraveenVenu 2012-03-13 07:20:36