本文介绍使用ionic.zip 压缩和解压文件,要使用ionic.zip,需下载此链接库,添加到项目中,文章最后又连接地址
压缩文件
/// <summary>
/// 实现压缩文件
/// </summary>
/// <param name="dirs">压缩的文件夹集合</param>
/// <param name="files">压缩的文件集合</param>
/// <param name="zipFileAddress">压缩文件的存放地址</param>
/// <param name="pass">压缩密码</param>
public void ZipFile(List<DirectoryInfo> dirs, List<FileInfo> files, string zipFileAddress, string pass = null)
{
using (ZipFile zip = new ZipFile(@zipFileAddress, Encoding.Default))
{
//压缩密码
if (pass != null)
{
zip.Password = pass;
}
//将要压缩的文件夹添加到zip对象中去
foreach (DirectoryInfo directoryInfo in dirs)
{
if (Directory.Exists(directoryInfo.FullName))
{
zip.AddDirectory(@directoryInfo.FullName);
}
}
//将要压缩的文件添加到zip对象中去
foreach (FileInfo fileInfo in files)
{
if (File.Exists(fileInfo.FullName))
{
zip.AddFile(@fileInfo.FullName);
}
}
zip.Save();// 保存
}
}
解压文件
/// <summary>
/// 实现解压
/// </summary>
/// <param name="unZipFileAddress">解压文件地址</param>
/// <param name="unZipFileExistAssress">解压后存放目录</param>
/// <param name="pass">解压密码</param>
public void UnZipFile(string unZipFileAddress,string unZipFileExistAssress, string pass = null)
{
using (ZipFile zip = new ZipFile(unZipFileAddress, Encoding.Default))
{
//解压密码
if (pass != null)
{
zip.Password = pass;
}
//目录存在与否
if (!Directory.Exists(unZipFileExistAssress))
{
Directory.CreateDirectory(unZipFileExistAssress);
}
//解压
foreach (ZipEntry entry in zip)
{
entry.Extract(@unZipFileExistAssress);
}
}
}
本代码未在vs上跑过,有错的地方,请指出,谢谢