所以我目前正在从我的 Web 服务器下载文件,文件的链接类似于
var url = "https://website.com/Game/patches/FooGame/App.config"
我目前正在使用
webClient.DownloadFile(new Uri(url),Path.Combine("C:\GAME\THE GAME FOLDER", filename));
filename
"FooGame\App.config"
希望它实际上FooGame
创建文件夹,然后下载从 URL 获取的文件并将其放在名为 App.config
但不是创建目录,如果我记得正确,它应该创建一个基于名称的文件夹,我不应该使用Directory.Create()
它目前抛出一个异常,指出"Could not find part of the path"
遵循您在上面看到的路径。为什么会这样,有没有一种下载文件的好方法,让它在应该我的地方创建一个文件夹。
作为一般规则,您不会这样做,因为您甚至无法确定URL中是否有路径。 my_servername.com/http_downloadhandler?file=
可以完全是您获取文件的地方。
如果要复制文件结构,通常将文件夹下载为zip存档并将其解压缩。这就是Github的每个人的做法。.zip文件可以按需生成,这要归功于 ZipArchive 类和 HTTP 文件处理程序。甚至HFS也有那么多支持。
如果您确实控制了服务器.zip但不知何故无法下载正常工作的文件夹,我想您可以使用 URL 类提取路径和路径类以将其按写入顺序处理。但实际上,只需使用.zip路线。
如果您在下载文件之前调用:
Directory.CreateDirectory(Path.Combine("C:\GAME\THE GAME FOLDER", filename))
您将获得:
在指定路径中创建所有目录和子目录,除非它们已存在。
来源:Microsoft文档
如果先创建完整路径,则可以从该字符串中获取目录名称并创建它:
var filePath = Path.Combine("C:\GAME\THE GAME FOLDER", filename);
Directory.CreateDirectory(Path.GetDirectoryName(filePath);