C# · 12月 26, 2021

使用C#解压缩tar文件

我正在寻找一种方法来为我的解决方案添加嵌入式资源.此资源将是包含大量文件的文件夹.根据用户需求,他们需要解压缩.

我正在寻找一种方法来存储这样的文件夹在可执行文件中而不涉及第三方库(看起来相当愚蠢,但这是任务).

我发现,我可以使用标准库GZip和UnGZip.但是GZip只处理单个文件.在这种情况下,TAR应该来到现场.但我没有在标准类中找到TAR实现.

也许有可能用裸露的C#解压缩TAR?

解决方法 由于您不允许使用外部库,因此您也不限于特定格式的tar文件.实际上,他们甚至不需要将它们全部放在同一个文件中.

您可以在C#中编写自己的类似tar的实用程序来遍历目录树,并生成两个文件:一个“头”文件,它包含一个序列化字典,将System.IO.Path实例映射到偏移/长度对,以及一个大的包含连接成一个巨型blob的单个文件内容的文件.这不是一项微不足道的任务,但也不过分复杂.