我如何使用C#substring获得没有最后4个字符的名称?

时间:2010-05-25 11:43:50

标签: c#

使用下面的代码我只得到名字前4个字符。但是我需要除了最后4个字符之外的名字。

string fileName = Textbox1.text;
string newName = fileName.Substring(0, 4);

// ex:输入abcdef.txt //输出:ABCD

但我需要输出:abcdef

请帮助!

感谢 里亚德

5 个答案:

答案 0 :(得分:11)

我认为你真正需要的是没有扩展名的文件名。为此,有一个单独的方法,自然称为GetFileNameWithoutExtension

答案 1 :(得分:8)

我认为您真正寻找的是Path.GetFileNameWithoutExtension

// prints abcdef
Console.WriteLine(Path.GetFileNameWithoutExtension("abcdef.txt"));

答案 2 :(得分:3)

string newName = fileName.Substring(0, fileName.Length - 4);

当然,这仅适用于您的分机长度为3个字符(并且有扩展名)。

答案 3 :(得分:2)

string newName = fileName.Substring(0, fileName.Length-4);

答案 4 :(得分:1)

除了已经说过的内容之外,对于任何感兴趣的人,System.IO.Path.GetFileNameWithoutExtension方法都没有什么神奇之处。它只是使用.查找完整文件名中的最后一个LastIndexOf()

所以它的全部内容是:

public static string GetFileNameWithoutExtension(string path)
{
    path = GetFileName(path);
    if (path == null)
    {
        return null;
    }
    int length = path.LastIndexOf('.');
    if (length == -1)
    {
        return path;
    }
    return path.Substring(0, length);
}