我有这种从字符串 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);
}

这会为您完成所有错误检查,并且与平台无关。所有特殊情况都可以快速轻松地为您处理。

关于c# - 从C#中的URI字符串获取文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1105593/

10-14 15:02
查看更多