Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#网络客户端下载文件到绝对路径_C#_Webclient - Fatal编程技术网

C#网络客户端下载文件到绝对路径

C#网络客户端下载文件到绝对路径,c#,webclient,C#,Webclient,我正在使用ASP.NET Core并尝试将文件下载到绝对路径 但我遇到的问题是,文件总是下载到项目目录中,而文件名本身会获得整个路径的名称 我的代码: string path = @"C:\Users\User\file.txt"; string url = "https://example.com/file.txt"; using (var client = new WebClient()) { client.DownloadFile(url,

我正在使用ASP.NET Core并尝试将文件下载到绝对路径

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

我的代码:

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

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

Update 这对我很有用:

使用(WebClient=newWebClient()){
client.DownloadFile(“https://localhost:5001/“,@“D:\file.html”);
}
根据这一点,你的绝对路径应该是有效的。是否确定路径格式正确且目标文件夹存在

原始答案 如果所有其他操作都失败,请使用此选项,因为保存到有效文件夹应该可以工作

WebClient.DownloadFile
将下载到当前应用程序的位置(由
application.Startup
指定)以获得相对路径。从:

参数
地址Uri

指定为字符串的URI,从中下载数据

文件名字符串

要接收数据的本地文件的名称

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

//下载到本地文件。
使用(var client=new WebClient())
{
client.DownloadFile(url、文件名);
}
//获取下载和目标文件夹的完整路径。
字符串fromPath=Path.Combine(Application.StartupPath,文件名);
字符串toPath=Path.Combine(destinationFolder,fileName);
//移动文件。
Move(fromPath,toPath);