如何使用C#中的子字符串从(文件名+扩展名)获取“文件名”?

时间:2014-01-29 19:23:38

标签: c# substring

这似乎很简单,但我很困惑。

情况如下:

我有一个完整的文件名,例如abdcd.pdfefghijf.jpgjklmn.jpeg

现在我必须只将文件名设为abdcdefghijfjklmn

7 个答案:

答案 0 :(得分:8)

使用Path类静态方法

result = Path.GetFileNameWithoutExtension(fileName);

答案 1 :(得分:2)

        String f = "file.jpg";
        int lastIndex = f.LastIndexOf('.');
        Console.WriteLine(f.Substring(0, lastIndex));

或者,与其他建议一样,您也可以使用

        Path.GetFileNameWithoutExtension(f)

答案 2 :(得分:2)

您可以使用String.Substring(),但我建议Path.GetFileNameWithoutExtension()执行此任务:

// returns "test"
Path.GetFileNameWithoutExtension("test.txt")

Go to the msdn documentation

这种方法基本上是这样实现的:

  int index = path.LastIndexOf('.');
  return index == -1 ? path : path.Substring(0, index);

答案 3 :(得分:2)

我会使用API​​调用。

http://msdn.microsoft.com/en-us/library/system.io.path.getfilenamewithoutextension(v=vs.110).aspx

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 ''

答案 4 :(得分:2)

我会使用Path静态方法:Path.GetFileNameWithoutExtension()

答案 5 :(得分:2)

答案 6 :(得分:2)

使用GetFileNameWithoutExtension静态方法,如下所示:

result = Path.GetFileNameWithoutExtension(fileName);

来自MSDN

  

GetFileName返回的字符串,减去最后一个句点(。)及其后面的所有字符。