如何在asp.NET中都文件进行压缩和解压

  介绍

这篇文章将为大家详细讲解有关如何在asp.NET中都文件进行压缩和解压,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>一、使用先。包装压缩和解压

包为一个抽象类,可用于将对象组织到定义的物理格式的单个实体中,从而实现可移植性与高效访问. zip文件是包的主物理格式。其他包实现可以使用其他物理格式(如XML文档,数据库或Web服务。与文件系统类似,在分层组织的文件夹和文件中引用包中包含的项。虽然包是抽象类,但包。开放的方法默认使用ZipPackage派生类。

System.IO.Packaging在WindowsBase.dll程序集下,使用时需要添加对WindowsBase的引用。

, 1,将整个文件夹压缩成zip

,///, & lt; summary>///才能,Add  a  folder  along  with  its  subfolders 用a 包///才能,& lt;/summary>///才能,& lt; param  name=癴olderName"祝辞,folder 用add///才能,& lt; param  name=癱ompressedFileName"祝辞,package 用create///才能,& lt; param  name=皁verrideExisting"祝辞Override  exsisitng  files///才能,& lt; returns> & lt;/returns>   static 才能;bool  PackageFolder (string  folderName, string  compressedFileName,, bool  overrideExisting)   {才能   ,,if  (folderName.EndsWith (@" \“))   ,,,folderName =, folderName.Remove (folderName.Length 作用;1);   ,,bool  result =,假;   ,,if  (! Directory.Exists (folderName))   ,,{   ,,,return 结果;   ,,}      ,,if  (! overrideExisting ,,, File.Exists (compressedFileName))   ,,{   ,,,return 结果;   ,,}   ,,试一试   ,,{   ,,,using  (Package  Package =, Package.Open (compressedFileName, FileMode.Create))   ,,,{   ,,,,var  fileList =, Directory.EnumerateFiles (folderName,,“*“,, SearchOption.AllDirectories);   ,,,,foreach  (string  fileName 拷贝文件列表)   ,,,,{   ,,,,,   ,,,,,//,path 拷贝,package  is  all  of 从而subfolders  after  folderName   ,,,,,string  pathInPackage;   ,,,,,pathInPackage =, Path.GetDirectoryName(文件名).Replace (folderName, string.Empty), +,“/? +, Path.GetFileName(文件名);      ,,,,,Uri  partUriDocument =, PackUriHelper.CreatePartUri (new  Uri (pathInPackage, UriKind.Relative));   ,,,,,PackagePart  packagePartDocument =, package.CreatePart (partUriDocument,““,, CompressionOption.Maximum);   ,,,,,using  (FileStream  FileStream =, new 文件流(FileMode.Open,文件名,还以为;FileAccess.Read))   ,,,,,{   ,,,,,,fileStream.CopyTo (packagePartDocument.GetStream ());   ,,,,,}   ,,,,}   ,,,}   ,,,result =,真的;   ,,}   ,,catch  (Exception  e)   ,,{   ,,,throw  new 例外(“Error  zipping  folder “, +, folderName,, e);   ,,}   ,,   ,,return 结果;   以前,,}

2,将单个文件添加到zip文件中

,///, & lt; summary>///才能,Compress  a  file  into  a  ZIP  archive  as 从而container 商店///才能,& lt;/summary>///才能,& lt; param  name=癴ileName"祝辞,file 用compress///才能,& lt; param  name=癱ompressedFileName"祝辞,archive  file///才能,& lt; param  name=皁verrideExisting"祝辞override  existing  file///才能,& lt; returns> & lt;/returns>   static 才能;bool  PackageFile (string ,文件名,string  compressedFileName,, bool  overrideExisting)   {才能   ,,bool  result =,假;      ,,if  (! File.Exists(文件名)   ,,{   ,,,return 结果;   ,,}      ,,if  (! overrideExisting ,,, File.Exists (compressedFileName))   ,,{   ,,,return 结果;   ,,}      ,,试一试   ,,{   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在asp.NET中都文件进行压缩和解压