• 在C#中压缩解压缩文件(适合.Net1.x)


    在C#中压缩解压缩文件的两种方式:
    使用开源的
    SharpZipLib  ,下面的代码是使用SharpZipLib做简单封装的压缩解压缩类:
     /// <summary>
     /// FileZipLib 压缩,解压缩的类
     /// </summary>
     public class FileZipLib
     {
      public FileZipLib() {}

      /// <summary>
      /// 创建一个压缩文件
      /// </summary>
      /// <param name="zipFilename">压缩后的文件名</param>
      /// <param name="sourceDirectory">待压缩文件的所在目录</param>
      public static void PackFiles(string zipFilename,string sourceDirectory)
      {
       FastZip fz = new FastZip() ;
       fz.CreateEmptyDirectories = true ;
       fz.CreateZip(zipFilename,sourceDirectory,true,"") ;
       fz = null ;
      }

      /// <summary>
      /// 解压缩文件
      /// </summary>
      /// <param name="zipFile">待解压缩的文件</param>
      /// <param name="directory">解压缩后文件存放的目录</param>
      public static bool UnpackFiles(string zipFile,string directory)
      {
       if( !Directory.Exists(directory) )
        Directory.CreateDirectory(directory) ;

       ZipInputStream zis = new ZipInputStream( File.OpenRead(zipFile) ) ;
       ZipEntry theEntry = null ;
       while( (theEntry = zis.GetNextEntry()) != null )
       {
        string directoryName = Path.GetDirectoryName(theEntry.Name) ;
        string fileName = Path.GetFileName(theEntry.Name) ;
        if( directoryName != string.Empty )
         Directory.CreateDirectory(directory + directoryName) ;

        if( fileName != string.Empty )
        {
         FileStream streamWriter = File.Create( Path.Combine( directory,theEntry.Name) ) ;
         int size = 2048 ;
         byte[] data = new byte[size] ;
         while ( true )
         {
          size = zis.Read(data,0,data.Length) ;
          if( size > 0 )
           streamWriter.Write( data,0,size ) ;
          else
           break ;
         }

         streamWriter.Close() ;
        }
       }

       zis.Close() ;
       return true ;
      }
     }
    最后别忘了using ICSharpCode.SharpZipLib.Zip ;
    以上代码参照
    利用 SharpZipLib方便地压缩和解压缩文件 而做了小修改

    另外一种方法使用Microsoft J# 类库,具体参考MSDN文章:
    通过 C# 使用 J# 类库中的 Zip 类压缩文件和数据

    本文首发于http://www.365keyi.com/article.asp?id=5

  • 相关阅读:
    微信小程序学习心得
    微信小程序分类的实现
    Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
    Vue中封装axios组件实例
    使用creata-react-app脚手架创建react项目时非常慢的问题
    Javascript的对象
    vue中上拉加载数据的实现
    Vue中键盘事件
    vant学习网址
    字符串,字典,数组写入本地文件和从本地文件读取
  • 原文地址:https://www.cnblogs.com/kwklover/p/364074.html
Copyright © 2020-2023  润新知