如何从路径中获取文件名?

3

我需要一些正则表达式专家的帮助。 :)

我有不同的路径、不同的文件夹和不同数量的文件夹。

我的问题是:如何获取最后一个——文件名?

例如在路径中:

C:\a\b\c\d\e\fgh.ddj

如何使用正则表达式获取“fgh.ddj”?

3个回答

25

您无需使用正则表达式,可以像这样进行操作,它是一个system.io帮助函数:

myfilename = Path.GetFileName(mypath);

如果您需要的不仅仅是文件名,那么可以使用FileInfo finfo = new FileInfo(path); 然后info包含路径、完整文件名、目录名等更多信息... - Vinko Vrsalovic
就像 Path 上的方法一样:Path.GetDirectoryName、Path.GetFullPath 等。 - Michael Petrotta
3
FYI,System.IO.Path、System.IO.File和System.IO.Directory中有大多数这些功能的静态帮助函数。大多数情况下,您可以编写一行代码而不是使用FileInfo。 - Dirk Vollmar
他也可以使用myfile = mypath.Substring(mypath.LastIndexOf("\\")+1);来完成与Path.GetFileName(mypath);相同的工作。 - Berker Yüceer

1

您也可以使用FileInfo。使用FileInfo时,文件是否存在实际上并不重要。

var fileInfo = new FileInfo("C:\a\b\c\d\e\fgh.ddj");
var fileName = fileInfo.Name;
//this returns "fgh.ddj"

如果文件存在,当然会有很多关于文件大小、最后访问时间等的信息。


-4
如果您已经安装了Perl,那么您可以尝试类似以下的代码...
#!/usr/bin/perl

use strict;

my $fullname = 'C:\a\b\c\d\e\fgh.ddj';
my $file = (split /\\/, $fullname)[-1];
print $file;

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