如何获取 .zip 内容的类型和数量

发布于 2024-08-30 12:44:01 字数 88 浏览 5 评论 0原文

如何获取 C# 中压缩文件夹的内容名称,即压缩文件夹内的文件和文件夹的名称? 我想仅使用 GZipStream 解压缩 zip。

谢谢, 卡皮尔

How can i get the content names of a zipped folder in C# i.e. name of files and folders inside the compressed folder?
I want to decompress the zip by using GZipStream only.

thanks,
kapil

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离笑几人歌 2024-09-06 12:44:01

您无法使用 GZipStream 执行此操作仅有的。您将需要 ZIP 标准的实现,例如 #ziplib。引用自MSDN:

写入的压缩 GZipStream 对象
到扩展名为 .gz 的文件即可
使用许多常见的解压缩
压缩工具;然而,这个类
本身并不提供
添加文件到或的功能
从 .zip 存档中提取文件。

#ziplib 示例:

using (var stream = File.OpenRead("test.zip"))
using (var zipStream = new ZipInputStream(stream))
{
    ZipEntry entry;
    while ((entry = zipStream.GetNextEntry()) != null)
    {
        // entry.IsDirectory, entry.IsFile, ...
        Console.WriteLine(entry.Name);
    }
}

You can't do this using GZipStream only. You will need an implementation of the ZIP standard such as #ziplib. Quote from MSDN:

Compressed GZipStream objects written
to a file with an extension of .gz can
be decompressed using many common
compression tools; however, this class
does not inherently provide
functionality for adding files to or
extracting files from .zip archives.

Example with #ziplib:

using (var stream = File.OpenRead("test.zip"))
using (var zipStream = new ZipInputStream(stream))
{
    ZipEntry entry;
    while ((entry = zipStream.GetNextEntry()) != null)
    {
        // entry.IsDirectory, entry.IsFile, ...
        Console.WriteLine(entry.Name);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文