C1Zip:处理标准Zip文件

发布时间:2014/05/28 00:05 发布者:alice

返回博客中心

本文介绍用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)


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网