【问题标题】:WebClient DownloadFileAsync Illegal characters in pathWebClient DownloadFileAsync 路径中有非法字符
【发布时间】:2011-09-28 07:11:23
【问题描述】:

我正在使用 WebClient.DownloadFileAsync 将文件异步下载到我的机器上。有时,我会得到带有双引号的 URL。

例如,请参阅:
http://upload.wikimedia.org/wikipedia/en/d/d3/"Baby"_Palace_Hotel_1906.jpg

当文件名包含双引号时,DownloadFileAsync 会引发“路径中的非法字符”异常。我也无法解码 url,因为 DownloadFileAsync 不接受字符串作为参数,而只接受 Uri。

什么是处理这种情况的好方法?

【问题讨论】:

    标签: c# webclient downloadfileasync


    【解决方案1】:

    奇怪,follownig 对我来说很好用:

    class Program
    {
        static void Main()
        {
            using (var client = new WebClient())
            {
                client.DownloadFileCompleted += (sender, e) =>
                {
                    Console.WriteLine("finished");
                };
                client.DownloadFileAsync(new Uri("http://upload.wikimedia.org/wikipedia/en/d/d3/\"Baby\"_Palace_Hotel_1906.jpg"), "test.jpg");
                Console.ReadLine();
            }
        }
    }
    

    【讨论】:

    • 我想通了。这是我的一个错误。我给出的文件名与 url 中的文件名相同,因此路径名也包含双引号。当我删除报价时,它起作用了。感谢您的尝试。
    猜你喜欢
    • 2015-05-03
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多