//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);
// }
// }
// }
//}
- 新手,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 ...
- 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 ...
- OSG3.40 编译时,无法打开输入文件“optimized.lib”
解决方案: 正常情况下,下图中会多出一项:ZLIB_LIBRARY_RELEASE,之后屡次编译,都提示"无法打开输入文件"optimized.lib"" 因为 ...
- Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法
我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很 ...
- 解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题
今天突然想在windows上装个 VS2015 玩玩,结果遇到了如下bug:安装完 VS2015 后,直接新建项目->win32控制台->运行,结果报错!"无法打开包括文件: & ...
- 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 ...
- 通过dll或def文件提取lib导入库文件
很多时候第三方库或其他项目提供的库多数会以动态库的形式提供dll以及相应的lib导入库.头文件,不过也有的只是提供dll和头文件,或者也提供了def模块定义(用于导出函数)文件,此时若使用将不得不调用 ...
- 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: *** [ ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...
随机推荐
- LVS负载均衡之NAT模式部署
1.LVS的NAT模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用 ...
- 使用JMeter3.0实战之分布式并发测试以及web API接口测试
简介: 该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习. 本博文的内容主要是进行配置JMet ...
- PostgreSQL学习资料
我的PostgreSQL学习笔记:http://note.youdao.com/share/?id=2e882717fc3850be9af503fcc0dfe7d0&type=notebook ...
- vue - 总结build.js
1. 导入外部包,用关键字 const :ES2015->不可变量 内部使用变量,let -> 块级声明 2.无分号结尾(我猜大概是用了es6变量,避免了es5应缺少分号出现的一些问题) ...
- S6:组合模式 Composite
将对象组合成树形结构以表示整体-部分的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. UML: 示例代码:透明组合:叶节点和子节点具有相同的接口 abstract class Com ...
- 如何将微信小程序页面内容充满整个屏幕
修改该页面的wxss文件 /* pages/weather/weather.wxss */ .weather{ position: fixed; height: 100%; width: 100%; ...
- 设计模式:工厂方法模式(Python)
来自:http://blog.csdn.net/ericzhong83/article/details/7604728 工厂方法模式(Factory Method Pattern): 定义了一个创建对 ...
- 《深入浅出mfc》 第1章 笔记
需要什么函数库(.lib) windows支持动态链接库,应用程序所调用 的windows api 函数是在“执行期间“才链接上的.Windows程序调用 可以分为 C Runtimes以及windo ...
- Linux下默认的目录介绍
目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - /bin 该目录存放着系统最常用的最重要的命令,相当于DOS ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(五)—— 解决tabs选择已建tab显示但datagrid的toolbar消失的问题
项目需要反复运行,调整bug.发现在选择已有选项卡时,虽然不需要再新建tab,直接跳转到已有的tab上,但问题是显示的datagrid有事会出现toolbar消失的问题.网上也有不少同学出现类似问题, ...