首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# WebClient下载文件到绝对路径

C# WebClient下载文件到绝对路径
EN

Stack Overflow用户
提问于 2021-02-24 16:00:30
回答 1查看 3.6K关注 0票数 4

我正在使用ASP.NET核心,并尝试下载一个文件到一个绝对路径。

但我遇到的问题是,文件总是被下载到项目目录中,而文件名本身则得到整个路径的名称。

我的守则:

代码语言:javascript
运行
复制
string path = @"C:\Users\User\file.txt";
string url = "https://example.com/file.txt";
using (var client = new WebClient())
{
    client.DownloadFile(url, path);
}

使用此代码,文件将保存在文件名为C:\Users\User\file.txt的项目文件夹中,而不是保存在文件名为file.txt的目录C:\Users\User中。

反斜杠和冒号被替换为一些特殊字符,因为文件名中不允许反斜杠和冒号。

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 16:35:59

更新

这对我起了作用:

代码语言:javascript
运行
复制
using (WebClient client = new WebClient()) {
    client.DownloadFile("https://localhost:5001/", @"D:\file.html");
}

根据这一点和其他答案,您的绝对路径应该可以工作。您确定您的路径格式正确且目标文件夹存在吗?

原始答案

如果其他所有操作都失败,请使用此方法,因为保存到有效文件夹应该有效。

WebClient.DownloadFile将下载到当前应用程序(由Application.Startup指定)相对路径的位置。来自文档

参数 address Uri 指定为字符串的URI,从中下载数据。 fileName String 要接收数据的本地文件的名称。

如果要使用WebClient,则需要在下载完文件后移动该文件。

代码语言:javascript
运行
复制
// Download to a local file.
using (var client = new WebClient())
{
    client.DownloadFile(url, fileName);
}

// Get the full path of the download and the destination folder.
string fromPath = Path.Combine(Application.StartupPath, fileName);
string toPath = Path.Combine(destinationFolder, fileName);

// Move the file.
File.Move(fromPath, toPath);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66354435

复制
相关文章

相似问题

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