我将如何从模板复制文件层次结构?

How would I replicate a file hierarchy from template?

我需要在文件夹中恢复某个文件层次结构,在它被删除后(是的,不要问)。

现在我把它想象成一个简单的应用程序,通过 Windows 任务计划程序获取 运行。虽然有一些方法可以实现这种效果,但我想创建一个简单的 单个 exe.

所以我将我的结构放入我的项目中,并将所有文件构建操作设置为 "Embedded resource"。我可以通过 Assembly.GetExecutingAssembly().GetManifestResourceNames()Assembly.GetExecutingAssembly().GetManifestResourceStream(name) 访问它们,但是我没有看到任何简单的方法来保留这样的层次结构。

虽然我正在解决一个实际问题,但这个问题本质上更具学术性——我不需要任何复杂的东西,比如解析资源名称以确定它产生的层次结构。我的文件结构实际上只有两个文件夹中的4个文件,如果需要推送我可以手动写出所有内容。

我相信应该有一个简单的方法来直接说 "Hey, here's how those files should be arranged, repeat"。也许资源是一种错误的机制?

你是对的,你不能。因为资源名称是标识符,所以一些字符在构建过程中被替换,您也不能存储空文件夹。但是,您可以从结构中构建一个 Zip 文件,嵌入该单个文件并在需要时将其解压缩 - 如果需要,只需一次调用。框架has built-in zip support。但是请注意,ZipFile 不能仅按顺序同时访问,因为只有一个内部状态。