zoukankan      html  css  js  c++  java
  • SharpZIP Lib

     
    //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(@"ApplicationsWinRAR.exeShellOpenCommand");
    // 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(@"ApplicationsWinRar.exeShellOpenCommand");
    // 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);
    // }
    // }
    // }
    //}
  • 相关阅读:
    mysql-centos7部署mysql5.7.20
    tips-history添加命令的执行时间
    Maven核心概述
    Java动态代理
    JDBC(3)-数据库事务
    JDBC(2)-操作BLOB类型字段和批量插入
    redis+mysql读写方案
    Redis与Memcache区别最全整理【摘自百度】
    redis+mysql有几种用法?【摘录知乎】
    js 拷贝到剪贴板
  • 原文地址:https://www.cnblogs.com/lisengl/p/3243772.html
Copyright © 2011-2022 走看看