c#DownloadFileAsync,不使用绝对路径

时间:2015-02-11 09:01:18

标签: c# path

string path = Path.GetDirectoryName(Application.ExecutablePath) +
                                     "\\" + directores[directores.Length - 2] +
                                     "\\" + Path.GetFileName(url_img).Replace(" ", "_");
client.DownloadFileAsync(new Uri(url_img), path);

这段代码不起作用,当我通过MessageBox检查它时路径似乎很好:

Image

我也尝试使用@符号,但它既不起作用。

如果我不输入路径而是输入名称,例如

client.DownloadFileAsync(new Uri(url_img), "test");
一切都好。我该如何解决这个问题?

忘记添加:如果这样的路径不存在,我想创建它!

2 个答案:

答案 0 :(得分:2)

每当使用异步方法时,您有责任检查结果。对于DownloadFileAsync,责任是实施DownloadFileCompleted。在这种情况下,请查看Error,它会为您提供关于为什么失败的宝贵线索。

答案 1 :(得分:-1)

找到解决方案:

if (!Directory.Exists(directores[directores.Length - 2])) 
    Directory.CreateDirectory(directores[directores.Length - 2]);



string path = Path.GetDirectoryName(Application.ExecutablePath) +
                                 "\\" + directores[directores.Length - 2] +
                                 "\\" + Path.GetFileName(url_img).Replace(" ", "_");
if (!Directory.Exists(directores[directores.Length - 2])) Directory.CreateDirectory(directores[directores.Length - 2]);
client.DownloadFileAsync(new Uri(url_img), path);

感谢您的帮助。

因此,如果该文件不存在,此函数不会创建文件夹,我们必须先创建它。