我有这种方法可以从字符串URI中获取文件名。我该怎么做才能使其更坚固?
private string GetFileName(string hrefLink) { string[] parts = hrefLink.Split('/'); string fileName = ""; if (parts.Length > 0) fileName = parts[parts.Length - 1]; else fileName = hrefLink; return fileName; }
您可以只创建一个System.Uri对象,并使用IsFile验证它是一个文件,然后使用Uri.LocalPath提取文件名。
这更加安全,因为它还为您提供了一种检查URI有效性的方法。
编辑以回应评论:
要获取完整的文件名,我将使用:
Uri uri = new Uri(hreflink); if (uri.IsFile) { string filename = System.IO.Path.GetFileName(uri.LocalPath); }
这将为您执行所有错误检查,并且与平台无关。所有特殊情况都会为您快速轻松地处理。