介绍
这篇文章将为大家详细讲解有关如何在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中都文件进行压缩和解压