首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >WebClient.DownloadFile莫名其妙的行为

WebClient.DownloadFile莫名其妙的行为
EN

Stack Overflow用户
提问于 2016-02-12 13:11:43
回答 1查看 62关注 0票数 1

在我的控制台应用程序中,我正在从给定的URL下载一个..xlsx文件。如果我将下载路径设置为"C:\Temp\Test.xlsx“,则下载工作正常,并且可以在Excel中打开该文件。但是,如果我将路径设置为"C:\SomeFolder\SomeSubfolder\Test.xlsx“,就会在指定的位置得到一个名为'Test.xlsx‘的文件夹。

下面是我下载文件的代码:

代码语言:javascript
代码运行次数:0
运行
复制
public void DownloadFile(string sourceUrl, string targetPath
{
    try
    {
        CreateDirectoryIfNotExists(targetPath);

        using (WebClient webClient = new WebClient())
        {
            webClient.UseDefaultCredentials = true;
            webClient.DownloadFile(sourceUrl, targetPath);
        }
    }
    catch(Exception e)
    {
        Console.WriteLine(e.Message);
        Console.Write(e);
        Console.ReadLine();
    }
}

下面是我创建目录的方法,如果目录还不存在的话:

代码语言:javascript
代码运行次数:0
运行
复制
private void CreateDirectoryIfNotExists(string targetPath)
{
    if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetPath)))
    {
        System.IO.Directory.CreateDirectory(targetPath);
    }
}

targetPath设置为“C:\Temp\Test.xlsx”的结果:

targetPath设置为“C:\SomeFolder\SomeSubfolder\Test.xlsx”的结果:

是否有理由将我的文件保存为文件夹而不是文件?

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 13:31:05

您正在从目标路径创建目录。更改这一行

代码语言:javascript
代码运行次数:0
运行
复制
System.IO.Directory.CreateDirectory(targetPath);

代码语言:javascript
代码运行次数:0
运行
复制
System.IO.Directory.CreateDirectory(new System.IO.FileInfo(targetPath).DirectoryName));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35363496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档