将图像从URL保存到C#中的本地文件中
问题描述:
我有以下代码,它将URL保存为本地文件。将图像从URL保存到C#中的本地文件中
using (WebClient client = new WebClient())
{
client.DownloadFile("http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg", "c:\\Tmp\test.jpg");
}
但是当我运行它时,我得到一个异常。它说'WebClient请求期间发生异常。“ 当我在deubgger中看到该异常时,它说'路径中存在非法字符'。
我检查网址是通过我的浏览器有效那么是什么原因造成的问题
答
你应该使用,这样
using (WebClient client = new WebClient())
{
client.DownloadFile(@"http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg", @"c:\\Tmp\test.jpg");
}
答
你的路径包含制表符:?\t
逃生第二反斜线:"C:\\Tmp\\test.jpg"
答
"c:\\Tmp\test.jpg"
你忘了躲过第二t
。
您应该使用@"c:\Tmp\test.jpg"
或"c:\\Tmp\\test.jpg"
答
只需在路径名前面加一个@符号。
using (WebClient client = new WebClient())
{
client.DownloadFile(@"http://images.craigslist.org/00o0o_kFhPDdTGf2e_600x450.jpg", @"c:\Tmp\test.jpg");
}
答
您的路径包含\t
这是一个非法的路径字符。反斜杠是C#中的一个保留字符,用于制表符和行结尾等字符,因此必须转义。
您可以使它成为一个双反斜线"C:\\Tmp\\test.jpg"
,或逃避整个字符串以@字符开头@"C:\Tmp\test.jpg"
答
尝试@符号:
"C:\\Tmp\\test.jpg"
为您的文件名
对待那些像任何其他字符串。第一个反斜杠是转义字符,第二个是识别反斜杠