如何在C#中获取目录中文件的名称

4
Directory.GetFiles(targetDirectory);

使用上述代码,我们可以获得目录中所有文件的名称(即完整路径),但我只需要获取文件名而不是路径。那么我该如何仅获取文件名而排除路径?或者我需要进行字符串操作以删除不需要的部分吗?
编辑:
TreeNode mNode = new TreeNode(ofd.FileName, 2, 2);

这里的ofd是一个OpenFileDialog,而ofd.FileName给出了文件名和它的路径,但我只需要文件名。

3个回答

14

你可以使用以下代码:

Path.GetFileName(fullPath);

或者在你的例子中:

TreeNode mNode = new TreeNode(Path.GetFileName(ofd.FileName), 2, 2);

TreeNode mNode = new TreeNode(Path.GetFileName(ofd.FileName), 2, 2);这里的ofd是OpenFileDialog,ofd.FileName包含文件路径和文件名,但是我只需要文件名。 - SyncMaster
Path.GetFileName(fullPath); 只适用于单个文件,而 Q 则适用于目录中的所有文件。 - Rashmi Pandit
@Rashmi Pandit - 但是他接着谈到了从OpenFileDirectory对话框中获取文件名的问题。 - ChrisF

3

如果您只想获取文件名而不进行任何手动字符串编辑,请使用DirectoryInfo和FileInfo。

DirectoryInfo dir = new DirectoryInfo(dirPath);
foreach (FileInfo file in dir.GetFiles())
    Console.WriteLine(file.Name);

1

使用:

 foreach(FileInfo fi in files)
 {
     Response.Write("fi.Name");       
 }

你可能应该留下其他答案,因为它们涵盖了最好的两个选择。 - cjk
你的回答与上下文无关。这个问题与ASP.NET没有任何关系。 - Adam Ralph
@ck和@adam,这个问题与控制台应用程序无关,但你们接受吗? - kenny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接