2013-02-18 73 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); 
}