2012-09-21 121 views
44

可能重複:
How to get only filenames within a directory using c#?Directory.GetFiles:如何獲取唯一的文件名,而不是完整的路徑?

使用C#,我希望得到一個文件夾中的文件列表。
我的目標:["file1.txt", "file2.txt"]

所以我寫了這一點:

string[] files = Directory.GetFiles(dir); 

不幸的是,我得到這樣的輸出:["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]

我能剝去不需要的 「C:\目錄\」 之後的部分,但有沒有更優雅的解決方案?

回答

108

您可以使用System.IO.Path.GetFileName做到這一點。

例如,

string[] files = Directory.GetFiles(dir); 
foreach(string file in files) 
    Console.WriteLine(Path.GetFileName(file)); 

雖然你可以使用FileInfo,它比你已經在使用(只是檢索文件路徑)的做法更重量級的。所以我建議你堅持GetFiles,除非你需要FileInfo課程的附加功能。

+14

'串[]文件= Directory.GetFiles(DIR)。選擇(文件=> Path.GetFileName(文件))ToArray的();' –

3

使用此命令僅獲取文件名。

Path.GetFileName(files[0]); 
相關問題