2013-02-18 47 views
-1

我想讓文件名位於指定的文件夾下。如何從指定文件夾獲取文件名?

即存在一個文件存儲在兩個文件夾下First\Second\test.txt我想在我的程序中擁有First\Second\文件的父目錄的路徑。現在我想使用代碼獲取駐留在「Second」目錄下的文件名。

請幫幫我。

+0

你到底需要什麼?你想從'second'文件夾中獲取所有文件,還是想從路徑獲取文件名,你的問題並不十分清楚 – Habib 2013-02-18 10:19:57

+0

只有一個文件駐留在第二個文件夾中。我想要的文件名。 @Habib – 2013-02-18 10:22:52

回答

1

下面將做的伎倆中的文件名。

using System.IO; 
using System.Linq 

var file = Directory.GetFiles("C:\\First\\Second\\").FirstOrDefault(); 

if (file != null) 
{ 
    var fileName = Path.GetFileName(file); 
} 

下面將讓你所有的文件名:

using System.IO; 
using System.Linq 

var files = Directory.GetFiles("C:\\First\\Second\\"); 
var fileNames = files.Select(f => Path.GetFileName(f)); 
1

您可以使用Directory.GetFiles方法獲取具有完整路徑的目錄中的文件,並稍後使用這些文件路徑來提取文件名。

string [] fileEntries = Directory.GetFiles(targetDirectory); 

爲了讓沒有路,如果你想一個文件,你可以使用LINQ

var fileNames System.IO.Directory.GetFiles(targetDirectory).Select(c => Path.GetFileName(c)).ToList(); 
+0

這將獲得完整的文件路徑。不是文件名。我在下面的答案將得到的名字。你需要Path.GetFileName調用。 – 2013-02-18 10:23:23

+0

你是什麼意思? – Adil 2013-02-18 10:27:30

+1

親愛的,我沒有看到你的答案,只是從你的評論意識到我的答案是沒有獲取文件名。 – Adil 2013-02-18 10:30:35

0

在這裏你去:

1)

string sourceDir = @"C:\First\Second\"; 
string[] fileEntries = Directory.GetFiles(sourceDir); 

foreach(string fileName in fileEntries) 
{ 
    // do something with fileName 
    Console.WriteLine(fileName); 
} 

2)

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Location); 
foreach (System.IO.FileInfo f in dir.GetFiles("*.*")) 
{ 
    Console.WriteLine(f.Name); 
} 
相關問題