資源描述:
《asp.net利用rar實(shí)現(xiàn)文件壓縮解壓縮--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、ASP.NET利用RAR實(shí)現(xiàn)文件壓縮解壓縮>>我們經(jīng)常會(huì)遇到批量上傳的問(wèn)題,也會(huì)遇到將某個(gè)目錄下所有文件都上傳到服務(wù)器上的問(wèn)題。那么,如何解決此類問(wèn)題呢?以前的技術(shù)一般采用ActiveX等方式,這里筆者采用SharpZlib來(lái)實(shí)現(xiàn),聽(tīng)說(shuō)VS2005已有壓縮和解壓縮的解決方案,筆者還沒(méi)有時(shí)間用VS2005,所以就只好使用VS2003+SharpZlib來(lái)解決問(wèn)題了。 1、首先從這里下載0.84版本的SharpZlib源碼及示例碼?! ?、下載下來(lái)之后你發(fā)現(xiàn)它沒(méi)有VS2003的解決方案文件,沒(méi)有關(guān)系。你可以自己建立,首先新建一個(gè)ZipUn
2、zip的解決方案,然后,將上面經(jīng)過(guò)解壓縮之后的所有文件及目錄COPY到你的解決方案所在的目錄下。 3、在VS2003解決方案資源管理器(一般是在右上方中部點(diǎn)的位置)中點(diǎn)擊顯示所有文件按鈕,然后可以見(jiàn)到很多“虛”的圖標(biāo)、文件及文件夾等,可以一次選擇它們,然后包含進(jìn)項(xiàng)目中?! ?、編譯,最好使用Release選項(xiàng),編譯完成之后你可以在binRelease看到ZipUnzip.dll的類了。如果你編譯時(shí)報(bào)錯(cuò),說(shuō)什么AssemblyKeyFile之類的,你可以使用強(qiáng)命名工具新建一個(gè),也可以將AssemblyInfo.cs中[assemb
3、ly:AssemblyKeyFile("。。。。。")]改成:[assembly:AssemblyKeyFile("")](不推薦這樣做)?! ?、新建一個(gè)項(xiàng)目,添加ZipUnzip.dll類的引用,然后添加如下文件及內(nèi)容://------------------------------------------//1.AttachmentUnZip.cs//------------------------------------------usingSystem;usingSystem.IO;usingICSharpCode.Sharp
4、ZipLib.Zip;usingICSharpCode.SharpZipLib.GZip;usingICSharpCode.SharpZipLib.BZip2;usingICSharpCode.SharpZipLib.Checksums;usingICSharpCode.SharpZipLib.Zip.pression;usingICSharpCode.SharpZipLib.Zip.pression.Streams;namespaceentUnZip { publicAttachmentUnZip() {} publicstat
5、icvoidUpZip(stringzipFile) { string[]FileProperties=ne;usingSystem.IO;usingICSharpCode.SharpZipLib.Zip;usingICSharpCode.SharpZipLib.GZip;usingICSharpCode.SharpZipLib.BZip2;usingICSharpCode.SharpZipLib.Checksums;usingICSharpCode.SharpZipLib.Zip.pression;usingICSharpCod
6、e.SharpZipLib.Zip.pression.Streams;namespaces=ne(File.OpenRead(args[0])); try { ZipEntrytheEntry; e=Path.GetDirectoryName(args[1]); stringfileName=Path.GetFileName(theEntry.Name); //生成解壓目錄 Directory.CreateDirectory(directoryName); if(fileName!=S
7、tring.Empty) { //解壓文件到指定的目錄>>>這篇文章來(lái)自..,。/> FileStreamstreame); intsize=2048; byte[]data=nes=ne(File.OpenRead(fileFullName)); ZipEntrytheEntry; e=Path.GetDirectoryName(theEntry.Name); stringfileName=Path.GetFileName(theEntry.Name);
8、 if(directoryName!=String.Empty) Directory.CreateDirectory(Path.bine(dir,directoryName));