ICSharpCode.SharpZipLib文件解压缩FileAllPath放到哪

.Net技术 针尖舞 9年前 (2015-08-26) 4215次浏览 0个评论
 

 

ICSharpCode.SharpZipLib.dll 是一个基于GNU的免费库文件,功能很强大。下面是对#ZipLib进行.net下的解压缩的方法的介绍。

1.BZip2

加入ICSharpCode.SharpZipLib.dll的引用,在#Develop的安装目录下的\SharpDevelop\bin目录下。然后在程序中使用using语句把BZip2 类库包含进来。 

压缩:使用BZip2的静态方法Compress。

它的第一个参数是所要压缩的文件所代表的输入流,可以使用System.IO.File的静态方法OpenRead。

第二个参数是要建立的压缩文件所代表的输出流,可以使用System.IO.File的静态方法Create创建,压缩文件名是所要压缩文件的文件名  加上压缩后缀.bz(同样你也可以取其他的文件名)。

第三个参数是要压缩的块大小(一般为2048的整数)。

解压:使用BZip2的静态方法Decompress。 

它的第一个参数是所要解压的压缩文件所代表的输入流,可以使用System.IO.File的静态方法OpenRead。

第二个参数是要建立的解压文件所代表的输出流,可以使用System.IO.File的静态方法Create创建,因为解压文件的文件名是去掉了压缩文件扩展名的压缩文件名(你也可以做成解压文件与压缩文件不同名的)。

编译你的程序,然后在命令行方式下输入bzip2   文件名(假设建立的C#文件是bzip2,就可以生成压缩文件;输入bzip2   -d   文件名,就会解压出文件来(-d是用来表示解压,你也可以使用其他的符号)。

  using   System;     

  using   System.IO;     

  using   ICSharpCode.SharpZipLib.BZip2;     

    

  class   MainClass     

  {     

        public   static   void   Main(string[]   args)     

        {     

              if   (args[0]   ==   “-d”)   {   //   解压     

                    BZip2.Decompress(File.OpenRead(args[1]),   File.Create(Path.GetFileNameWithoutExtension(args[1])));     

              }   else   {   //压缩     

                    BZip2.Compress(File.OpenRead(args[0]),   File.Create(args[0]   +   “.bz”),   4096);     

              }     

        }     

  } 

2.GZip 

        加入ICSharpCode.SharpZipLib.dll的引用,在#Develop的安装目录下的\SharpDevelop\bin目录下。然后在程序中使用using语句把GZip类库包含进来。

由于GZip没有BZip2的简单解压缩方法,因此只能使用流方法来进行解压缩。具体的方法见程序的说明。

编译程序,然后在命令行方式下输入GZip   文件名(假设建立的C#文件是GZip,就可以生成压缩文件;输入GZip   -d   文件名,就会解压出文 件来(-d是用来表示解压,你也可以使用其他的符号)。       

using   System;     

using   System.IO;     

using   ICSharpCode.SharpZipLib.GZip;     

    

class   MainClass     

  {     

        public   static   void   Main(string[]   args)     

        

网上提供的大概就是上面的东西了,

问题一:说的那流这流的不太懂,我只想知道,我用FileUpload1上传压缩包到指定地点,然后我会获得压缩文件所在位子,这个路径放到什么地方来解压

例如:

//file fl = new file();

//string FileAllPath = fl.path() + Session[“Name”].ToString();//压缩文件的地址

FileAllPath放到哪,我也就需要这一个参数不就可以解压了嘛?其他的都是干什么用的啊?谁做过帮忙解释一下,我英语不好看不懂官方的文档,谢谢

 

————

 

File1.PostedFile.SaveAs(strPath);

string []FileProperties=new string[2];

FileProperties[0]=strPath; //待解压的文件

FileProperties[1]=strPhotoPath+@””;//解压后放置的目标目录

UnZip(FileProperties);

public void UnZip(string[] args)

{

ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));

  

ZipEntry theEntry;// = s.GetNextEntry();

while ((theEntry = s.GetNextEntry()) != null) 

{

string directoryName = Path.GetDirectoryName(args[1]);

string fileName      = Path.GetFileName(theEntry.Name);

Directory.CreateDirectory(directoryName);

if (fileName != String.Empty) 

{   

//解压文件到指定的目录

FileStream streamWriter = File.Create(args[1]+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();

}


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ICSharpCode.SharpZipLib文件解压缩FileAllPath放到哪
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!