2012-03-01 21 views
1

我有一個用戶導航到特定文件夾的表單。他們導航到的文件夾將包含多個文件夾,並且在幾個級別的文件夾中將會有一個名爲「file.zip」的zip文件。所以這意味着將會有很多文件夾裏面都有一個「file.zip」。我想掃描所有這些「file.zip」文件的所選文件夾。我最終只會查找那些大小爲0kb或爲空的「file.zip」文件。我想,我會需要使用LINQ返回在這樣的父文件夾中的文件列表:如何根據文件名和/或擴展名檢索文件夾的所有文件大小?

string[] files = Directory.GetFiles(txtbxOldFolder.Text) 
         .Select(f => Path.GetFiles(f)) 
         .ToArray(); 

但我也需要他們各自的尺寸,以便以後可以創建任何壓縮的目錄列表文件是空的或顯示大小爲0kb。我在想,也許有一種方法可以根據名稱(file.zip)返回目錄和每個文件的大小,以便以後可以遍歷數組併爲這些文件創建目錄的日誌.zip是空的/有一個0kb的大小。

回答

2
var directory = @"c:\myfolder"; 
var files = Directory.GetFiles(directory, "file.zip", SearchOption.AllDirectories) 
.Select(name => new FileInfo(name)) 
.Where(f => f.Length == 0).ToArray(); 
+0

我不確定如何驗證它是否工作,因爲它似乎沒有真正寫入數組,除非我誤解了var調用。我需要將這些信息寫入日誌文件並將其打開,以下是我如何操作以及如何獲取這些信息。 File.WriteAllText(folderLog,files.ToString()); 它在我的日誌中顯示「System.IO.FileInfo []」? – 2012-03-02 17:29:11

+0

files變量包含一個「FileInfo」類型的對象數組,它們表示名爲「file.zip」的文件,並且文件夾中的長度爲零。要打開它們中的任何一個,請使用FileInfo.Open(),FileInfo.OpenRead()或FileInfo.OpenText()。 FullName包含文件的完整路徑。 FileInfo.Length包含文件長度。 – 2012-03-04 06:28:57

相關問題