C# 下载Fortnite的.ini文件并移动到LocalAppData时WebClient报错如何解决
An exception occurred during a WebClient request. 报错通常由路径不存在、无写入权限、路径拼接错误、目标文件被占用导致,以下是两种实现方案和修复方法:
方案1:直接下载到目标配置路径
首先构造合法的目标路径,不要硬编码系统特殊目录路径:
// 获取系统LocalAppData路径 string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // 拼接Fortnite配置目录完整路径 string fortniteConfigDir = Path.Combine(localAppData, @"FortniteGame\Saved\Config\WindowsClient"); // 目录不存在则自动创建,避免路径不存在报错 if (!Directory.Exists(fortniteConfigDir)) { Directory.CreateDirectory(fortniteConfigDir); } // 目标ini文件完整路径,替换为你实际的文件名 string targetIniPath = Path.Combine(fortniteConfigDir, "custom_config.ini");
WebClient 下载示例
using (WebClient client = new WebClient()) { // 替换为实际的ini文件下载直链 client.DownloadFile("你的ini下载链接", targetIniPath); }
更推荐的HttpClient下载示例(适配.NET Core/.NET 5+)
using (HttpClient client = new HttpClient()) { var response = await client.GetAsync("你的ini下载链接"); response.EnsureSuccessStatusCode(); using var fileStream = new FileStream(targetIniPath, FileMode.Create, FileAccess.Write, FileShare.None); await response.Content.CopyToAsync(fileStream); }
方案2:下载到下载目录后移动到目标路径
如果需要先保留副本到下载目录,可使用移动逻辑:
// 下载目录的ini文件路径,替换为实际文件名 string downloadPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), @"Downloads\custom_config.ini"); // 移动前校验:目标路径存在同名文件则先删除,避免冲突 if (File.Exists(targetIniPath)) { File.Delete(targetIniPath); } // 执行移动 File.Move(downloadPath, targetIniPath);
常见问题排查
- 权限不足:如果写入目标路径需要管理员权限,给程序添加应用程序清单文件,将
requestedExecutionLevel节点的level属性设置为requireAdministrator - 文件被占用:操作前确认目标ini文件未被Fortnite或文本编辑器等程序打开
- 链接无效:手动访问ini下载链接,确认可以直接获取文件内容,避免重定向、鉴权等问题
- 路径错误:始终使用
Path.Combine拼接路径,不要手动拼接带\的字符串,避免不同系统环境下的分隔符兼容问题
内容的提问来源于stack exchange,提问作者Damian
相关产品推荐
相关产品推荐

