0

有没有比使用 substring() 更简单、更短的方法?我试图减少错误,因为在输入 LastIndexOf 和 Length 以及计数器时很容易出错。

string filepath = "c:\folder1\folder2\folder3\file1.jpg";
string file = "";

file = filepath.SubString(
    (filepath.LastIndexOf("\\")+1), 
    (filepath.Length - filepath.LastIndexOf("\\")+1)
);

我想得到这个值“file1.jpg”。

谢谢...

4

2 回答 2

5

是的,使用Path.GetFileName

string filepath = "c:\folder1\folder2\folder3\file1.jpg";
string file = Path.GetFileName(filePath);

非基于路径的记录的另一个选项是使用String.Split函数。

string longString = "The cat jump over the brown fox";
string[] splitString = longString.Split(new char[] {' '}); //Splits the string in to array elements wherever it see a space;
string lastWord = splitString[splitString.Length - 1]; //Could throw a error is the length is less than 1
string lastTwoWords = String.Join(" ", splitString.Skip(splitString.Length - 2)); //Could throw a error if the length is less than 2
于 2013-07-12T16:46:20.617 回答
4

这个函数可以帮助你:Path.GetFileName()

如果您不需要文件扩展名,也有GetFileNameWithoutExtension和GetExtension来获取扩展名(:

于 2013-07-12T16:45:11.400 回答