一尘不染

从C#中的URI字符串获取文件名

c#

我有这种方法可以从字符串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;
}

阅读 668

收藏
2020-05-19

共1个答案

一尘不染

您可以只创建一个System.Uri对象,并使用IsFile验证它是一个文件,然后使用Uri.LocalPath提取文件名。

这更加安全,因为它还为您提供了一种检查URI有效性的方法。


编辑以回应评论:

要获取完整的文件名,我将使用:

Uri uri = new Uri(hreflink);
if (uri.IsFile) {
    string filename = System.IO.Path.GetFileName(uri.LocalPath);
}

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

2020-05-19