C#调用Ionic.Zip类压缩文件夹
2021-02-08 14:15
标签:stat path 压缩文件夹 etc cep reac roo direct rect Note:网上找到的资源记录一下 遗留问题:保存的zip文件含有多级目录,暂时未找到去除多级目录的方法 /// public static string CompressMulti(List zip.Save();//压缩 C#调用Ionic.Zip类压缩文件夹 标签:stat path 压缩文件夹 etc cep reac roo direct rect 原文地址:https://www.cnblogs.com/sl9981/p/11360884.html
/// 压缩ZIP文件
/// 支持多文件和多目录,或是多文件和多目录一起压缩
///
/// 待压缩的文件或目录集合
/// 压缩后的文件名
/// 是否按目录结构压缩
///
{
string filePath = Base.staticValue.root + "/Temp/Fun/AttachAdd/";
try
{
using (ZipFile zip = new ZipFile(filePath + "文件.zip", Encoding.Default))//设置编码,解决压缩文件时中文乱码
{
foreach (string path in list)
{
string fileName = Path.GetFileName(path);//取目录名称
string currentDirectory = Directory.GetCurrentDirectory();
//如果是目录
Directory.SetCurrentDirectory(filePath); // 临时切换当前目录到 /Fun/Temp
//if (Directory.Exists(path))
//{
// if (IsDirStruct)//按目录结构压缩
// {
// zip.AddDirectory(filePath, fileName);
// }
// else//目录下的文件都压缩到Zip的根目录
// {
// if (Directory.Exists(path))
// zip.AddDirectory(path);// 恢复当前目录
// }
//}
// Com.Optlog.addErr(path, "path1" + path);
// zip.AddDirectory(path);
if (File.Exists(path))//如果是文件
{
// zip.AddFile(path);
zip.AddFile(@path);
// Com.Optlog.addErr(path, "path" + path);
}
Directory.SetCurrentDirectory(currentDirectory); // 恢复当前目录
}
return filePath + "list.zip";
}
}
catch (Exception)
{
return "";
}
}
上一篇:C# 模拟Windows键盘消息
下一篇:Object类、常用API
文章标题:C#调用Ionic.Zip类压缩文件夹
文章链接:http://soscw.com/index.php/essay/52666.html