c#构建字符串域

时间:2013-11-26 08:09:08

标签: c# web-scraping stringbuilder

我正在尝试下载图片。他们的链接可能是image.pnghttp://www.example.com/image.png

我将image.png添加到主机并将其传递给列表。所以image.png现在是http://www.example.com/image.png

但如果使用其他类型,我得到的是http://www.example.com//http://www.example.com/image.png

我需要的是在第三个斜杠后获取字符串。以下是我尝试使用的一些代码:

try
{
    path = this.txtOutput.Text + @"\" + str4 + etc;
    client.DownloadFile(str, path);
}
catch(Exception e)
{

    var uri = new Uri(str);
    String host = (String) uri.Host;
    String pathToFile = "http://" + host + "/";

    int len = pathToFile.Length;

    String fin = str.Substring(len, str.Length - len);

    path = this.txtOutput.Text + @"\" + str4 + etc;
    client.DownloadFile(fin, path);
}

1 个答案:

答案 0 :(得分:1)

这些变量有哪些,例如str4etc等等?而不是try catch你可以检查字符串是否是有效的uri。看看here。尝试在线调试代码行并检查每个变量,然后你会看到哪一行犯了错误。

修改

如果我对你说得不对,那么这就是你的解决方案:

        string wrongResult = "example.com//http://www.example.com/image.png";
        string shouldResult = "example.com/image.png";

        int listIndexOfHttp = wrongResult.LastIndexOf("http:");
        string correctResult = wrongResult.Substring(listIndexOfHttp);

什么时候没有请说明你从哪里得到更具体的结构,它总是相同的结构?还是不同的?