如何生成我正在下载的文件路径名中的文件夹



所以我目前正在从我的 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);

相关内容

  • 没有找到相关文章

最新更新