C# - 在 gzip 中压缩文件和文件夹

C# - Compress files and folders in gzip

我需要创建一个压缩文件(rar、gz 或其他 支持大文件和大压缩文件)。我需要创建文件夹并添加由文件夹分隔的文件。 示例:我有一个这样的文件夹结构

Folder 1
  Folder 1.1
  Folder 1.2
  Folder 1.3
Folder 2
  Folder 2.1
    Folder 2.1.1

在每个文件夹中我都有一些文件。 我需要在压缩文件中复制结构 zip 压缩显然有一些限制,如文件大小和压缩文件大小。 我尝试过使用 GZipStream,但我没有发现如何在 gz 文件中创建文件夹。

GZIP 只能压缩流(因此得名 GZipStream)。这就是为什么 gzip 经常与 tar(如 .tar.gz 文件)一起使用,其中 tar 从文件夹结构中创建一个存档,然后 gzip 压缩该存档。

如果您不能使用 ZipArchive 或 ZipFile(在 System.IO.Compression.FileSystem 中),您最好的选择是外部 library/package,例如 SharpZipLib or SharpCompress.