这是我的代码:
private string title(string pth) //I'm passing a path
{
pth = System.IO.Path.GetFileNameWithoutExtension(pth); // I need an exact filename with no extension
return pth.Substring(pth.IndexOf('-')+1, pth.Length).Trim(); // trying to return everything after '-'
}
它引发异常。我不知道为什么。这是从文件名中获取标题的极其简单的方法,但是它不起作用。
我已经尝试过
pth.Length-1
,但是它也不起作用。 最佳答案
您正在使用String.Substring
method的版本,该版本允许您指定要提取的字符数。
但是,您要提供length
参数作为字符串本身的整个长度,因此也就是ArgumentOutOfRangeException
。
如果使用this version of String.Substring
,则可以提供一个参数(startIndex
),然后自动从提供的索引处获取其余字符串。
因此,您可以从此更改代码:
return pth.Substring(pth.IndexOf('-')+1, pth.Length).Trim();
对此:
return pth.Substring(pth.IndexOf('-')+1).Trim();