本文介绍用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文件,所有条目将如下所示,然后就可以用菜单进行添加、修改、删除等操作。
本文Demo源代码如下:
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。