在C#中将图像从URL保存到本地文件

时间:2014-09-25 22:56:44

标签: c#

我有以下代码,用于将带有URL的图像保存到本地文件。

using (WebClient client = new WebClient())
{
    client.DownloadFile("http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg", "c:\\Tmp\test.jpg");
}

但是当我运行它时,我得到一个例外。它说' WebClient请求期间发生了异常。" 当我在deubgger看到那个例外。它说路径中有非法字符。'

我通过浏览器检查网址是否有效。那么是什么导致了这个问题?

6 个答案:

答案 0 :(得分:0)

您的路径包含制表符:\t。逃避第二个反斜杠:"C:\\Tmp\\test.jpg"

答案 1 :(得分:0)

"c:\\Tmp\test.jpg"

你忘了逃避第二个t

您应该使用@"c:\Tmp\test.jpg""c:\\Tmp\\test.jpg"

答案 2 :(得分:0)

只需在路径名称前添加@符号即可。

       using (WebClient client = new WebClient())
        {
            client.DownloadFile(@"http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg", @"c:\Tmp\test.jpg");
        }

答案 3 :(得分:0)

您的路径包含\t,这是一个非法路径角色。反斜杠是C#中的保留字符,用于制表符和行结尾等字符,因此必须进行转义。

您可以将其设为双后斜杠"C:\\Tmp\\test.jpg",或者在开头{@ 1}}

以@字符转义整个字符串

答案 4 :(得分:0)

你应该使用@符号这样的

      using (WebClient client = new WebClient())
        {
            client.DownloadFile(@"http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg",                                @"c:\\Tmp\test.jpg");
        }

答案 5 :(得分:0)

尝试:

"C:\\Tmp\\test.jpg"

为您的文件名

像对待任何其他字符串那样处理它们。第一个反斜杠是转义字符,第二个是识别反斜杠