从C#中的pathstring获取文件名

我在WPF C#中编程。 我有例如以下path:

C:\Program Files\hello.txt 

我想输出“ 你好 ”。

该path是从数据库提取的string。 目前我正在使用下面的方法(由'\'拆分path,然后再由'。'拆分):

 string path = "C:\\Program Files\\hello.txt"; string[] pathArr = path.Split('\\'); string[] fileArr = pathArr.Last().Split('.'); string fileName = fileArr.Last().ToString(); 

它的工作,但我相信应该有更短,更聪明的解决scheme。 任何想法?

Path.GetFileName

Path.GetFileNameWithoutExtension

Path类很棒。

您可以使用Path API如下:

  var filenNme = Path.GetFileNameWithoutExtension([File Path]); 

更多信息: Path.GetFileNameWithoutExtension

尝试

 System.IO.Path.GetFileNameWithoutExtension(path); 

演示

 string fileName = @"C:\mydir\myfile.ext"; string path = @"C:\mydir\"; string result; result = Path.GetFileNameWithoutExtension(fileName); Console.WriteLine("GetFileNameWithoutExtension('{0}') returns '{1}'", fileName, result); result = Path.GetFileName(path); Console.WriteLine("GetFileName('{0}') returns '{1}'", path, result); // This code produces output similar to the following: // // GetFileNameWithoutExtension('C:\mydir\myfile.ext') returns 'myfile' // GetFileName('C:\mydir\') returns '' 

https://msdn.microsoft.com/en-gb/library/system.io.path.getfilenamewithoutextension%28v=vs.80%29.aspx

 var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path); 

Path.GetFileNameWithoutExtension

尝试这个:

 string fileName = Path.GetFileNameWithoutExtension(@"C:\Program Files\hello.txt"); 

这将为fileName返回“hello”。

 string Location = "C:\\Program Files\\hello.txt"; string FileName = Location.Substring(Location.LastIndexOf('\\') + 1); 

尝试这个,

 string FilePath=@"C:\mydir\myfile.ext"; string Result=Path.GetFileName(FilePath);//With Extension string Result=Path.GetFileNameWithoutExtension(FilePath);//Without Extension