
在文件管理器中找到文件,点一下就会出选项呀。或者在这个软件中找到压缩文件点击就会出菜单 进入查看可以选中复制粘贴到指定位置
当然是先下载然后在文件管理器里面找到文件或者直接打开ZArchiver浏览找到文件再解压呀
在C#中实现文件的压缩和解压缩,需要使用第三方的组建完成。常用的是:SharpZipLib组建。
1、压缩和解压缩有两种典型的算法,一种是BZIP2算法,另一种是GZIP算法。BZIP2能够获得较高的压缩比,但是压缩和解压缩比较耗时,GZIP效率比较高,但是压缩比较低。
2、BZIP2压缩算法的相关类,位于命名空间:ICSharpCode.SharpZipLib.BZip2中,算法要求指定输入流和输出流,并指定压缩方法使用的块大小,一般为2048.
3、GZIP压缩算法的相关类,位于命名空间:ICSharpCode.SharpZipLib.GZip中,首先创建GZipOutputStream类实例,作为压缩文件的输出流,使用GZipOutputStream类实例的Write方法,将从源文件读取的数据写入输入流。同时完成压缩运算。
4、使用实例:
classZipAndUnzipFile
{
publicstaticvoidGetZipAndUnzipFile(){
stringsrcFile=@"..\..\testzip.txt";//准备压缩的文件路径
stringzipFile=@"..\..\testzip";//压缩后的文件路径
stringunzipFile=@"..\..\testzip_unzip.txt";//解压后的文件路径
Console.WriteLine("使用BZIP开始压缩文件……");
if(BZipFile(srcFile,zipFile+".bz"))//使用BZIP压缩文件
{
Console.WriteLine("文件压缩完成");
}
else
{
Console.WriteLine("文件压缩失败");
}
Console.WriteLine("使用BZIP开始解压文件……");
if(UnBzipFile(zipFile+".bz",unzipFile))//使用BZIP解压文件
{
Console.WriteLine("文件解压完成");
}
else
{
Console.WriteLine("文件解压失败");
}
Console.WriteLine("使用GZIP开始压缩文件……");
if(GZipFile(srcFile,zipFile+".gz"))//使用GZIP压缩文件
{
Console.WriteLine("文件压缩完成");
}
else
{
Console.WriteLine("文件压缩失败");
}
Console.WriteLine("使用GZIP开始解压文件……");
if(UnGzipFile(zipFile+".gz",unzipFile))//使用GZIP解压文件
{
Console.WriteLine("文件解压完成");
}
else
{
Console.WriteLine("文件解压失败");
}
Console.ReadLine();
}
//使用BZIP压缩文件的方法
staticboolBZipFile(stringsourcefilename,stringzipfilename)
{
boolblResult;//表示压缩是否成功的返回结果
//为源文件创建文件流实例,作为压缩方法的输入流参数
FileStreamsrcFile=File.OpenRead(sourcefilename);
//为压缩文件创建文件流实例,作为压缩方法的输出流参数
FileStreamzipFile=File.Open(zipfilename,FileMode.Create);
try
{
//以4096字节作为一个块的方式压缩文件
BZip2.Compress(srcFile,zipFile,4096);
blResult=true;
}
catch(Exceptionee)
{
Console.WriteLine(ee.Message);
blResult=false;
}
srcFile.Close();//关闭源文件流
zipFile.Close();//关闭压缩文件流
returnblResult;
}
//使用BZIP解压文件的方法
staticboolUnBzipFile(stringzipfilename,stringunzipfilename)
{
boolblResult;//表示解压是否成功的返回结果
//为压缩文件创建文件流实例,作为解压方法的输入流参数
FileStreamzipFile=File.OpenRead(zipfilename);
//为目标文件创建文件流实例,作为解压方法的输出流参数
FileStreamdestFile=File.Open(unzipfilename,FileMode.Create);
try
{
BZip2.Decompress(zipFile,destFile);//解压文件
blResult=true;
}
catch(Exceptionee)
{
Console.WriteLine(ee.Message);
blResult=false;
}
destFile.Close();//关闭目标文件流
zipFile.Close();//关闭压缩文件流
returnblResult;
}
//使用GZIP压缩文件的方法
staticboolGZipFile(stringsourcefilename,stringzipfilename)
{
boolblResult;//表示压缩是否成功的返回结果
//为源文件创建读取文件的流实例
FileStreamsrcFile=File.OpenRead(sourcefilename);
//为压缩文件创建写入文件的流实例,
GZipOutputStreamzipFile=newGZipOutputStream(File.Open(zipfilename,FileMode.Create));
try
{
byte[]FileData=newbyte[srcFile.Length];//创建缓冲数据
srcFile.Read(FileData,0,(int)srcFile.Length);//读取源文件
zipFile.Write(FileData,0,FileData.Length);//写入压缩文件
blResult=true;
}
catch(Exceptionee)
{
Console.WriteLine(ee.Message);
blResult=false;
}
srcFile.Close();//关闭源文件
zipFile.Close();//关闭压缩文件
returnblResult;
}
//使用GZIP解压文件的方法
staticboolUnGzipFile(stringzipfilename,stringunzipfilename)
{
boolblResult;//表示解压是否成功的返回结果
//创建压缩文件的输入流实例
GZipInputStreamzipFile=newGZipInputStream(File.OpenRead(zipfilename));
//创建目标文件的流
FileStreamdestFile=File.Open(unzipfilename,FileMode.Create);
try
{
intbuffersize=2048;//缓冲区的尺寸,一般是2048的倍数
byte[]FileData=newbyte[buffersize];//创建缓冲数据
while(buffersize>0)//一直读取到文件末尾
{
buffersize=zipFile.Read(FileData,0,buffersize);//读取压缩文件数据
destFile.Write(FileData,0,buffersize);//写入目标文件
}
blResult=true;
}
catch(Exceptionee)
{
Console.WriteLine(ee.Message);
blResult=false;
}
destFile.Close();//关闭目标文件
zipFile.Close();//关闭压缩文件
returnblResult;
}
}
转自:博客园《C#实现文件的压缩和解压缩》 --孙雅玲
回复 7# 魅、我为红颜笑 你说的是压缩?Oh,我以为是解压的。。你还是在电脑上压缩吧,手机这样的软件好像还没吧,因为压缩很费劲,手机吃不了。
tar命令使用 压缩:tar cvfz 目标文档 源文档1 [源文档2...]
例如:tar cvfz m.tar.gz hello.cpp hello.h //m.tar.gz是目标文档,hello.cpp和hello.h是源文档
解压:tar xvfz 目标文档
例如:tar xvfz m.tar.gz //在当前目录下将压缩包文档m.tar.gz解压缩
上面的简单用法基本够用了,以下是从别的地方转来的其他一些用法,但我从来没用过,暂时存放一下。1.文档或目录打包:tar -cvf /u0/temp2.tar /usr/lib将/usr/lib目录下的文档和子目录打包成一个文档库为/u0/temp2.tar。tar -cvf /u0/temp2.tar /usr/lib *.c *.f将/usr/lib目录下的*.c *.f等文档(不含子目录)打包。注意:假如指定文档如*.c *.f或*.*,则打包时均不含子目录。假如指定为.或*,则含子目录。2.压缩:compress /u0/temp2.tar压缩为/u0/temp2.tar.z3.解压:uncompress /u0/temp2.tar.Z则还原为/u0/temp2.tar4.解包展开:tar -xvf /u0/temp2.tar若以相对路径打包的,解包时,以相对路径存放展开的文档数据;若以绝对路径打包的,解包时,以绝对路径存放展开的文档数据。若指定展开的文档名,须注意文档的目录路径。5.显示:tar -tvf /u0/temp2.tar 显示文档库内的文档名称。当指定文档名时,亦须注意文档的路径。
tar命令
tar能够为文档和目录创建档案。利用tar,用户能够为某一特定文档创建档案(备份文档),也能够在档案中改变文档,或向 档案中加入新的文档。tar最初被用来在磁带上创建档案,现在,用户能够在任何设备上创建档案,如软盘。利用tar命令,能够把一大堆的文档和目录全部打 包成一个文档,这对于备份文档或将几个文档组合成为一个文档以便于网络传输是很有用的。Linux上的tar是GNU版本的。
语法:tar [主选项 辅选项] 文档或目录
使用该命令时,主选项是必须要有的,他告诉tar要做什么事情,辅选项是辅助使用的,能够选用。
主选项:
c 创建新的档案文档。假如用户想备份一个目录或是一些文档,就要选择这个选项。
r 把要存档的文档追加到档案文档的未尾。例如用户已作好备份文档,又发现更有一个目录或是一些文档忘记备份了,这时能够使用该选项,将忘记的目录或文档追加到备份文档中。
t 列出档案文档的内容,查看已备份了哪些文档。
u 更新文档。就是说,用新增的文档取代原备份文档,假如在备份文档中很难找到要更新的文档,则把他追加到备份文档的最后。
x 从档案文档中释放文档。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文档或设备,这个选项通常是必选的。
k 保存已存在的文档。例如我们把某个文档还原,在还原的过程中,碰到相同的文档,不会进行覆盖。
m 在还原文档时,把任何文档的修改时间设定为现在。
M 创建多卷的档案文档,以便在几个磁盘中存放。
v 周详报告tar处理的文档信息。如无此选项,tar不报告文档信息。
w 每一步都需要确认。
z 用gzip来压缩/解压缩文档,加上该选项后能够将档案文档进行压缩,但还原时也一定要使用该选项进行解压缩。
例1:把/home目录下包括他的子目录全部做备份文档,备份文档名为usr.tar。
$ tar cvf usr.tar /home
例2:把/home目录下包括他的子目录全部做备份文档,并进行压缩,备份文档名为usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz这个备份文档还原并解压缩。
$ tar xzvf usr.tar.gz
例4:查看usr.tar备份文档的内容,并以分屏方式显示在显示器上。
$ tar tvf usr.tar | more
要将文档备份到一个特定的设备,只需把设备名作为备份文档名。
例5:用户在/dev/fd0设备的软盘中创建一个备份文档,并将/home 目录中任何的文档都拷贝到备份文档中。
$ tar cf /dev/fd0 /home
要恢复设备磁盘中的文档,可使用xf选项:
$ tar xf /dev/fd0
如 果用户备份的文档大小超过设备可用的存贮空间,如软盘,您能够创建一个多卷的tar备份文档。M选项指示tar命令提示您使用一个新的存贮设备,当使用M 选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒您再放入一张新的软盘。这样您就能够把tar档案存入几张磁盘中。
$ tar cMf /dev/fd0 /home
要恢复几张盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令。在必要时您会被提醒放入另外一张软盘。
$ tar xMf /dev/fd0