如何在 C# 中使用子字符串仅从(文件名 + 扩展名)获取'File Name'?



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

以下情况是:

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

现在,我必须仅获取文件名abdcdefghijfjklmn

使用路径类静态方法

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

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

        Path.GetFileNameWithoutExtension(f)

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

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

转到MSDN文档

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

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

我将使用API调用。

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

string fileName = @"C:mydirmyfile.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:mydirmyfile.ext') returns 'myfile' 
// GetFileName('C:mydir') returns ''

我将使用路径静态方法: Path.GetFileNameWithoutExtension()

实际上有一种方法:

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

使用getFilenamewithOutExtension静态方法:

result = Path.GetFileNameWithoutExtension(fileName);

来自MSDN:

getFilename返回的字符串,减去最后一个时期(。)和之后的所有字符。

相关内容

最新更新