//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"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...
随机推荐
- 使用Faric+Git进行分布式代码管理
Fabric是一个Python库,可以通过SSH在多个host上批量执行任务. 可以通过编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行. 这些功能非常适合应用的自动 ...
- vim删除文本文件中末行^M
^M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在*nix系统里则为\n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个^M.所以^M只是一 ...
- service 和 Controller 差别
service 层能够看做是还有一个 DAO 层,仅仅是在里面封装了还有一些逻辑. 而 Controller 和 service 差别就大了.Controller 要处理请求映射, service ...
- GBDT--简单理解
梳理 1.Model Ensemble 能够分为三大类:Bagging,Boosting. Stacking. 2.Boosting能够说是一个思想(框架),而Adaboost等算法仅仅是其一个子类, ...
- 提高PAAS安全性的一点尝试
云服务已经成为现代人生活的一部分.手机中的照片会自己主动同步到云中:你的邮件内容保存在云中.办公软件执行在云中:你的健康数据会实时上传到云中.你每天的生活轨迹消耗的卡路里也会上传到云中:云服务也会逐渐 ...
- IOS 多播委托(GCDMulticastDelegate)
原文:http://www.cnblogs.com/dagehaoshuang/p/4043264.html 在IOS中为了实现回调一般有如下几个方法: delegate 通知中心 block KVO ...
- js判段URL是否可用(js判段网络是否不可用)
下面亲自測试可行: 兼容全部浏览器,用JQuery的方法,能够判段URL是否可用.也能够判段网络是否不可用(前提:假设URL可用.返回也不是200,那就说明是网络不可用.能够以此作为网络是否可用的判段 ...
- JavaScript的特殊函数
1.匿名函数 onclick=function(){}就是匿名函数. 2.匿名函数的回调函数 <script> <span style="white-space:pre&q ...
- "《 Serial Drivers 》by Alessandro Rubini" 学习笔记
Introduction to "serial device driver" (My study note) 膜拜大神的作品. Standing on the should ...
- ST股福音:涨停潮开始! 最全ST摘帽股汇总!
本周ST股摘帽行情提前预演,ST股上演涨停潮,部分ST股甚至出现连续涨停.云财经在三季报披露之前曾经做过一期ST股摘帽分析,在三季报正式披 露完毕后,以及部分ST公司公布了2015年年报预告,ST股能 ...