C1Zip:处理标准Zip文件

本文介绍用C1Zip的C1ZipFile类处理Zip文件,它包括创建、打开、编辑标准的Zip文件。还可以列出Zip文件中的条目,添加、删除、扩展或查看文件,压缩整个目录,并使用密码保护/加密。C1ZipFile是处理zip文件的类。C1ZipFile具有一个C1ZipFile.Entries属性,该属性代表了一个zip文件中条目的集合。<p><a href="http://www.grapecity.com.cn/image.ashx?picture=Zip-Open.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="Zip-Open" src="http://www.grapecity.com.cn/image.ashx?picture=Zip-Open_thumb.png" alt="Zip-Open" width="696" height="396" border="0" /></a></p>

发布于 2014/05/28 00:00

ComponentOne Enterprise

本文介绍用C1Zip的C1ZipFile类处理Zip文件,它包括创建、打开、编辑标准的Zip文件。还可以列出Zip文件中的条目,添加、删除、扩展或查看文件,压缩整个目录,并使用密码保护/加密。

C1ZipFile是处理zip文件的类。C1ZipFile具有一个C1ZipFile.Entries属性,该属性代表了一个zip文件中条目的集合。

创建Zip文件

创建:使用C1ZipFile的Create两个不同方法可以在数据流或是硬盘上创建一个新的Zip文件。

打开:使用C1ZipFile的Open两个不同方法可以打开数据流或是硬盘上的Zip文件。

处理Zip文件

列出Zip文件中的条目:通过C1ZipFile.Entrie集合获得所有在Zip文件中的条目。通过代码可以得到文件的详细信息,各个条目的路径信息,以及Zip文件的注释。

// fill out list
var zec = _zipFile.Entries;
listView.BeginUpdate();
foreach (C1ZipEntry ze in zec)
{
	var fa = ze.Attributes;
	var entry = new String[] 
        	{
                        FileName(ze.FileName),                      // file name, no extension
                        FileExtension(ze.FileName),                 // file extension, no dot
                        ze.Date.ToString("MM/dd/yy  HH:mm"),        // mod date/time
                        ze.SizeUncompressedLong.ToString("#,##0"),  // original size
                        ze.SizeCompressedLong.ToString("#,##0"),    // compressed size
                        AttribString(ze.Attributes),                // encode as "rahs"
			((uint)ze.CRC32).ToString(),                // CRC32 (unsigned looks better)
			ze.Comment                                  // user comment
                    };
                var lvi = new ListViewItem(entry);
                lvi.Tag = ze;
                lvi.ImageIndex = ((ze.Attributes & FileAttributes.Directory) != 0)? 0: 1;
                if (ze.IsEncrypted) lvi.ImageIndex = 3;
                listView.Items.Add(lvi);
}

添加文件:使用C1ZipFile.Entries.Add方法可以添加文件到当前打开的Zip文件中。

添加目录:使用C1ZipFile.Entries.AddFolder方法可以把整个目录下的所有文件添加到当前打开的Zip文件中。

压缩:用C1ZipFile.CompressionLevel属性获取和设置文件条目添加到Zip文件的压缩级别。首先设置C1ZipFile的CompressionLevel属性,然后用Add或AddFolder方法将文件添加到Zip文件中,就会使用设置的压缩级别添加。默认的压缩级别是C1.C1Zip.CompressionLevelEnum.DefaultCompression。该压缩级别的枚举类型如下:

// 摘要:
    //     Specifies the level of compression to be applied when adding entries to a
    //     C1.C1Zip.C1ZipFile.
    public enum CompressionLevelEnum
    {
        // 摘要:
        //     High compression, high speed.
        DefaultCompression = -1,
        //
        // 摘要:
        //     No Compression.
        NoCompression = 0,
        //
        // 摘要:
        //     Low compression, highest speed.
        BestSpeed = 1,
        //
        // 摘要:
        //     Highest compression, low speed.
        BestCompression = 9,
    }

删除文件:使用C1ZipFile.Entries.Remove方法从当前打开的Zip文件中删除某个条目。

扩展文件:使用C1ZipFile.Entries.Extract方法从当前打开的Zip文件中扩展文件。

文件注释:使用C1ZipFile.Comment属性获取或设置Zip文件中相关文件的注释。

密码保护:C1ZipFile.Password属性可以设置和获取密码,用于Zip文件添加和恢复文件条目。

 

运行本文附件的Demo,打开一个Zip文件,所有条目将如下所示,然后就可以用菜单进行添加、修改、删除等操作。

Zip-Open

本文Demo源代码如下:

ZipFileDemo.7z (94.10 kb)

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态