You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何设置DownloadFileAsync的自定义文件下载路径?

修改C#文件下载路径到自定义位置

你只需要修改DownloadFileAsync方法的第二个参数,把单纯的文件名替换成完整的目标文件路径即可,以下是几种常见实现方式:

1. 固定到系统特殊目录(比如桌面)

用Environment.SpecialFolder获取系统标准路径,避免硬编码路径导致的兼容性问题:

private void DownloadSpotify_Click(object sender, EventArgs e)
{
    wc.DownloadFileCompleted += new AsyncCompletedEventHandler(FileDownloadComplete);
    Uri fileurl = new Uri("https://download.scdn.co/SpotifySetup.exe");
    
    // 获取桌面路径并拼接文件名,用Path.Combine避免路径分隔符问题
    string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "SpotifySetup.exe");
    wc.DownloadFileAsync(fileurl, savePath);
}

常用的Environment.SpecialFolder枚举值还有:

  • Documents:用户文档目录
  • Downloads:系统默认下载目录
  • ProgramFiles:程序文件安装目录

2. 让用户自定义选择保存路径

用SaveFileDialog让用户手动选择保存位置,灵活性更高:

private void DownloadSpotify_Click(object sender, EventArgs e)
{
    using (SaveFileDialog saveFileDialog = new SaveFileDialog())
    {
        saveFileDialog.FileName = "SpotifySetup.exe"; // 设置默认文件名
        saveFileDialog.Filter = "EXE文件 (*.exe)|*.exe|所有文件 (*.*)|*.*";
        
        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            wc.DownloadFileCompleted += new AsyncCompletedEventHandler(FileDownloadComplete);
            Uri fileurl = new Uri("https://download.scdn.co/SpotifySetup.exe");
            wc.DownloadFileAsync(fileurl, saveFileDialog.FileName);
        }
    }
}

3. 硬编码固定路径(不推荐)

如果确实需要固定到某个特定路径,直接写入完整路径即可,推荐用Path.Combine拼接避免分隔符错误:

// 示例:保存到D盘的MyDownloads文件夹
string saveDir = "D:\\MyDownloads";
// 先判断目录是否存在,不存在则创建
if (!Directory.Exists(saveDir))
{
    Directory.CreateDirectory(saveDir);
}
string savePath = Path.Combine(saveDir, "SpotifySetup.exe");

内容的提问来源于stack exchange,提问作者IndigoCode123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:30:58