2012-12-22 62 views
0

我一直在研究一個程序,該程序需要使用try和catch嵌套在另一個try/catch中的不同方法來完成作業。如何將FileInfo轉換爲FileInfo []

爲此,我必須創建一組文件作爲字符串,然後將它們轉換爲FileInfo

IEnumerable<string> paths = null; 
foreach (String fil in paths) 
    FileInfo h = new FileInfo(fil); 

,這樣就沒有那麼困難,我需要FileInfo是在一個FileInfo[]陣列的形式,然而,繼續運行程序。

System.IO.FileInfo[] files = null; 

簡而言之,什麼是一種類型的,無論是直接從轉換FileInfo的字符串轉換爲其他成FileInfo陣列(FileInfo[])的最佳方法?

+0

了' FileInfo []'數組恰恰是:'FileIn FO [] []'。即不是你想要的。 –

+0

另外。如果'paths'爲null,你將如何創建一個數組? –

+0

路徑不爲空,這只是設置線 – Adsy2010

回答

3

爲什麼不直接?

paths.Select(p => new FileInfo(p)).ToArray(); 
+0

將檢查出這一點 – Adsy2010

+0

@ Adsy2010:請注意,您至少需要.NET 3.5來使用System.Linq。 –

+0

上午使用版本3.5 – Adsy2010

2

用途:

var result = paths.Select(p => new FileInfo(p)).ToArray(); 
4

呀,或者創建一個單一項目數組:

FileInfo[] files = new FileInfo[] { info }; 
+1

我使用的方法是一個子方法,需要添加到已經在數組中的任何東西 – Adsy2010

0

你可以只使用Linq選擇創建您的FileInfo[]

IEnumerable<string> paths = null; // assuming you are going to fill this with filenames 
FileInfo[] fileInfos = paths.Select(p => new FileInfo(p)).ToArray();