//using System;
//using System.IO;
//using System.Diagnostics;
//using Microsoft.Win32;
 
//using ICSharpCode.SharpZipLib.Checksums;
//using ICSharpCode.SharpZipLib.Zip;
 
/////压缩、解压缩类
//namespace DanielLib.Utilities.ZipHandler
//{
// public class SharpZip
// {
// public SharpZip()
// { }
 
// /// <summary>
// /// 压缩
// /// </summary>
// /// <param name="filename"> 压缩后的文件名(包含物理路径)</param>
// /// <param name="directory">待压缩的文件夹(包含物理路径)</param>
// public static void PackFiles(string filename, string directory)
// {
// try
// {
// FastZip fz = new FastZip();
// fz.CreateEmptyDirectories = true;
// fz.CreateZip(filename, directory, true, "");
// fz = null;
// }
// catch (Exception)
// {
// throw;
// }
// }
 
// /// <summary>
// /// 解压缩
// /// </summary>
// /// <param name="file">待解压文件名(包含物理路径)</param>
// /// <param name="dir"> 解压到哪个目录中(包含物理路径)</param>
// public static bool UnpackFiles(string file, string dir)
// {
// try
// {
// if (!Directory.Exists(dir))
// {
// Directory.CreateDirectory(dir);
// }
// ZipInputStream s = new ZipInputStream(File.OpenRead(file));
// ZipEntry theEntry;
// while ((theEntry = s.GetNextEntry()) != null)
// {
// string directoryName = Path.GetDirectoryName(theEntry.Name);
// string fileName = Path.GetFileName(theEntry.Name);
// if (directoryName != String.Empty)
// {
// Directory.CreateDirectory(dir + directoryName);
// }
// if (fileName != String.Empty)
// {
// FileStream streamWriter = File.Create(dir + theEntry.Name);
// int size = 2048;
// byte[] data = new byte[2048];
// while (true)
// {
// size = s.Read(data, 0, data.Length);
// if (size > 0)
// {
// streamWriter.Write(data, 0, size);
// }
// else
// {
// break;
// }
// }
// streamWriter.Close();
// }
// }
// s.Close();
// return true;
// }
// catch (Exception)
// {
// throw;
// }
// }
// }
 
// public class ClassZip
// {
// #region 私有方法
// /// <summary>
// /// 递归压缩文件夹方法
// /// </summary>
// private static bool ZipFileDictory(string FolderToZip, ZipOutputStream s, string ParentFolderName)
// {
// bool res = true;
// string[] folders, filenames;
// ZipEntry entry = null;
// FileStream fs = null;
// Crc32 crc = new Crc32();
// try
// {
// entry = new ZipEntry(Path.Combine(ParentFolderName, Path.GetFileName(FolderToZip) + "/"));
// s.PutNextEntry(entry);
// s.Flush();
// filenames = Directory.GetFiles(FolderToZip);
// foreach (string file in filenames)
// {
// fs = File.OpenRead(file);
// byte[] buffer = new byte[fs.Length];
// fs.Read(buffer, 0, buffer.Length);
// entry = new ZipEntry(Path.Combine(ParentFolderName, Path.GetFileName(FolderToZip) + "/" + Path.GetFileName(file)));
// entry.DateTime = DateTime.Now;
// entry.Size = fs.Length;
// fs.Close();
// crc.Reset();
// crc.Update(buffer);
// entry.Crc = crc.Value;
// s.PutNextEntry(entry);
// s.Write(buffer, 0, buffer.Length);
// }
// }
// catch
// {
// res = false;
// }
// finally
// {
// if (fs != null)
// {
// fs.Close();
// fs = null;
// }
// if (entry != null)
// {
// entry = null;
// }
// GC.Collect();
// GC.Collect(1);
// }
// folders = Directory.GetDirectories(FolderToZip);
// foreach (string folder in folders)
// {
// if (!ZipFileDictory(folder, s, Path.Combine(ParentFolderName, Path.GetFileName(FolderToZip))))
// {
// return false;
// }
// }
// return res;
// }
 
// /// <summary>
// /// 压缩目录
// /// </summary>
// /// <param name="FolderToZip">待压缩的文件夹,全路径格式</param>
// /// <param name="ZipedFile">压缩后的文件名,全路径格式</param>
// private static bool ZipFileDictory(string FolderToZip, string ZipedFile, int level)
// {
// bool res;
// if (!Directory.Exists(FolderToZip))
// {
// return false;
// }
// ZipOutputStream s = new ZipOutputStream(File.Create(ZipedFile));
// s.SetLevel(level);
// res = ZipFileDictory(FolderToZip, s, "");
// s.Finish();
// s.Close();
// return res;
// }
 
// /// <summary>
// /// 压缩文件
// /// </summary>
// /// <param name="FileToZip">要进行压缩的文件名</param>
// /// <param name="ZipedFile">压缩后生成的压缩文件名</param>
// private static bool ZipFile(string FileToZip, string ZipedFile, int level)
// {
// if (!File.Exists(FileToZip))
// {
// throw new System.IO.FileNotFoundException("指定要压缩的文件: " + FileToZip + " 不存在!");
// }
// FileStream ZipFile = null;
// ZipOutputStream ZipStream = null;
// ZipEntry ZipEntry = null;
// bool res = true;
// try
// {
// ZipFile = File.OpenRead(FileToZip);
// byte[] buffer = new byte[ZipFile.Length];
// ZipFile.Read(buffer, 0, buffer.Length);
// ZipFile.Close();
 
// ZipFile = File.Create(ZipedFile);
// ZipStream = new ZipOutputStream(ZipFile);
// ZipEntry = new ZipEntry(Path.GetFileName(FileToZip));
// ZipStream.PutNextEntry(ZipEntry);
// ZipStream.SetLevel(level);
 
// ZipStream.Write(buffer, 0, buffer.Length);
// }
// catch
// {
// res = false;
// }
// finally
// {
// if (ZipEntry != null)
// {
// ZipEntry = null;
// }
// if (ZipStream != null)
// {
// ZipStream.Finish();
// ZipStream.Close();
// }
// if (ZipFile != null)
// {
// ZipFile.Close();
// ZipFile = null;
// }
// GC.Collect();
// GC.Collect(1);
// }
// return res;
// }
// #endregion
 
// /// <summary>
// /// 压缩
// /// </summary>
// /// <param name="FileToZip">待压缩的文件目录</param>
// /// <param name="ZipedFile">生成的目标文件</param>
// /// <param name="level">6</param>
// public static bool Zip(String FileToZip, String ZipedFile, int level)
// {
// if (Directory.Exists(FileToZip))
// {
// return ZipFileDictory(FileToZip, ZipedFile, level);
// }
// else if (File.Exists(FileToZip))
// {
// return ZipFile(FileToZip, ZipedFile, level);
// }
// else
// {
// return false;
// }
// }
 
// /// <summary>
// /// 解压
// /// </summary>
// /// <param name="FileToUpZip">待解压的文件</param>
// /// <param name="ZipedFolder">解压目标存放目录</param>
// public static void UnZip(string FileToUpZip, string ZipedFolder)
// {
// if (!File.Exists(FileToUpZip))
// {
// return;
// }
// if (!Directory.Exists(ZipedFolder))
// {
// Directory.CreateDirectory(ZipedFolder);
// }
// ZipInputStream s = null;
// ZipEntry theEntry = null;
// string fileName;
// FileStream streamWriter = null;
// try
// {
// s = new ZipInputStream(File.OpenRead(FileToUpZip));
// while ((theEntry = s.GetNextEntry()) != null)
// {
// if (theEntry.Name != String.Empty)
// {
// fileName = Path.Combine(ZipedFolder, theEntry.Name);
// if (fileName.EndsWith("/") || fileName.EndsWith("\\"))
// {
// Directory.CreateDirectory(fileName);
// continue;
// }
// streamWriter = File.Create(fileName);
// int size = 2048;
// byte[] data = new byte[2048];
// while (true)
// {
// size = s.Read(data, 0, data.Length);
// if (size > 0)
// {
// streamWriter.Write(data, 0, size);
// }
// else
// {
// break;
// }
// }
// }
// }
// }
// finally
// {
// if (streamWriter != null)
// {
// streamWriter.Close();
// streamWriter = null;
// }
// if (theEntry != null)
// {
// theEntry = null;
// }
// if (s != null)
// {
// s.Close();
// s = null;
// }
// GC.Collect();
// GC.Collect(1);
// }
// }
// }
 
// public class ZipHelper
// {
// #region 私有变量
// String the_rar;
// RegistryKey the_Reg;
// Object the_Obj;
// String the_Info;
// ProcessStartInfo the_StartInfo;
// Process the_Process;
// #endregion
 
// /// <summary>
// /// 压缩
// /// </summary>
// /// <param name="zipname">要解压的文件名</param>
// /// <param name="zippath">要压缩的文件目录</param>
// /// <param name="dirpath">初始目录</param>
// public void EnZip(string zipname, string zippath, string dirpath)
// {
// try
// {
// the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
// the_Obj = the_Reg.GetValue("");
// the_rar = the_Obj.ToString();
// the_Reg.Close();
// the_rar = the_rar.Substring(1, the_rar.Length - 7);
// the_Info = " a " + zipname + " " + zippath;
// the_StartInfo = new ProcessStartInfo();
// the_StartInfo.FileName = the_rar;
// the_StartInfo.Arguments = the_Info;
// the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// the_StartInfo.WorkingDirectory = dirpath;
// the_Process = new Process();
// the_Process.StartInfo = the_StartInfo;
// the_Process.Start();
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// }
 
// /// <summary>
// /// 解压缩
// /// </summary>
// /// <param name="zipname">要解压的文件名</param>
// /// <param name="zippath">要解压的文件路径</param>
// public void DeZip(string zipname, string zippath)
// {
// try
// {
// the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRar.exe\Shell\Open\Command");
// the_Obj = the_Reg.GetValue("");
// the_rar = the_Obj.ToString();
// the_Reg.Close();
// the_rar = the_rar.Substring(1, the_rar.Length - 7);
// the_Info = " X " + zipname + " " + zippath;
// the_StartInfo = new ProcessStartInfo();
// the_StartInfo.FileName = the_rar;
// the_StartInfo.Arguments = the_Info;
// the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// the_Process = new Process();
// the_Process.StartInfo = the_StartInfo;
// the_Process.Start();
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// }
// }
//}

SharpZIP Lib的更多相关文章

  1. 新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法

    1,到官网下载最新的boost,www.boost.org 这里我下载的1-63版本. 2,安装,解压后运行bootstrap.bat文件.稍等一小会就OK. 3,编译boost库.注意一定要使用VS ...

  2. ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock

    ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock 通过终端安装程序sudo apt-get install xxx时出错:E: Could not ...

  3. OSG3.40 编译时,无法打开输入文件“optimized.lib”

    解决方案: 正常情况下,下图中会多出一项:ZLIB_LIBRARY_RELEASE,之后屡次编译,都提示"无法打开输入文件"optimized.lib"" 因为 ...

  4. Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法

    我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很 ...

  5. 解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题

    今天突然想在windows上装个 VS2015 玩玩,结果遇到了如下bug:安装完 VS2015 后,直接新建项目->win32控制台->运行,结果报错!"无法打开包括文件: & ...

  6. locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory

    # locate zabbix locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory locate ...

  7. 通过dll或def文件提取lib导入库文件

    很多时候第三方库或其他项目提供的库多数会以动态库的形式提供dll以及相应的lib导入库.头文件,不过也有的只是提供dll和头文件,或者也提供了def模块定义(用于导出函数)文件,此时若使用将不得不调用 ...

  8. make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1,make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1

    错误3: g++: g++: selected multilib '32' not installed selected multilib '32' not installed make: *** [ ...

  9. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...

随机推荐

  1. Python3环境安装Scrapy爬虫框架过程及常见错误

    收录待用,修改转载已取得腾讯云授权 Scrapy安装介绍 Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上.下面说明Python3环境下的安装过程. Sc ...

  2. 【DP】UVA 624 CD 记录路径

    开一个数组p 若dp[i-1][j]<dp[i-1][j-a[i]]+a[i]时就记录下p[j]=a[i];表示此时放进一个轨道 递归输出p #include <stdio.h> # ...

  3. 倍福TwinCAT(贝福Beckhoff)应用教程12.3 TwinCAT控制松下伺服 NC进阶

    在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如 ...

  4. ssl生成证书

    凝雨 - Yun 快乐编程每一天 - Happy Coding Every Days HOME ARCHIVES CATEGORIES TAGS ABOUT Openssl生成自签名证书,简单步骤 P ...

  5. mac中yeoman构建你的项目

    一开始用在mac中构建一个项目就遇到一个很奇怪的事, 做好各种准备工作后,我开始创建一个angular01作为测试目录,结果运行yo脚手架之后,选择angular工作流进行构建项目,出来的结果我开始慌 ...

  6. java集合框架小结

    总结例如以下: 1.假设要求线程安全的, 使用Vector.Hashtable 2.假设不要求线程安全,应该使用ArrayList.LinkedList.HashMap 3.假设要求有映射关系,键值对 ...

  7. DEB方式在UBUNTU安装ODOO 8.0

    odoo在ubuntu最简单最快速安装方式是deb方式,基本无需再去改数据库配置文件,全自动化了,odoo中文网推荐新手采用此方法 1 安装数据库:sudo apt-get install postg ...

  8. loadrunner两个函数:取参数长度和时间戳函数

    出自中国IT实验室2014-05-23 00:01 1.web_save_param_length 函数 函数原型:int web_save_param_length( const char *Par ...

  9. 解析 PHP 中 session 的实现原理以及大网站应用应该注意的问题

    一 PHP SESSION原理 session 是在服务器端保持用户会话数据的一种方法,而 cookie 是在客户端保持用户数据.HTTP 协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系 ...

  10. swift user guide.pdf下载

    日志以便日后查找.谢谢 1 Swift User Guide.pdf下载 http://download.csdn.net/detail/swifttrain/7442921 2 The Swift ...