如何从路径字符串中仅获取文件名部分?

时间:2013-01-14 16:31:27

标签: c#

  

可能重复:
  How to get the name of File in a directory in C#

例如,如果我有:

d:\test\text.txtd:\test\test5\test.bmp

我希望在例如string t中仅将text.txt作为字符串 或者t将是test.bmp

因此t将仅包含路径字符串中的文件名部分。

代码:

public WmvAdapter(string file, string outFolder)
{
    path_exe = path_exe = Path.GetDirectoryName(Application.LocalUserAppDataPath);
    histograms_dat_fileName = "histogramValues.dat";
    histograms_dat_filenameRGB = "histogramValuesRGB.dat";
    histograms_dat_fileName_Directory = path_exe + "\\" + "dat file";

我想要的是,如果文件是例如d:\text\text.txt 所以

histograms_dat_fileName_Directory = path_exe + "\\" + "dat file"; 

将是:

histograms_dat_fileName_Directory = path_exe + "\\" + "dat file" + "\\" + "text.txt";

因此,当我稍后创建该文件时,它将位于目录中,例如:

c:\myuser\appdata\local\dat file\text.txt\

text.txt是一个路径\文件夹,而不是我希望将其创建为路径的文本文件。

今天的路径例如是:c:\myuser\appdata\local\dat file

但我想为每个文件名创建另一条路径。

3 个答案:

答案 0 :(得分:8)

使用Path.GetFileName

Path.GetFileName(@"d:\test\text.txt")

返回"text.txt"

答案 1 :(得分:3)

使用Path.GetFileNamePath.Combine

string path = Path.Combine(path_exe, "dat file", Path.GetFileName(file));

答案 2 :(得分:0)

string fileName = Path.GetFileName("d:\\test\\test5\\test.bmp");
// fileName now contains "test.bmp"