2022年2022年关于C#压缩类的使用方法 .pdf
《2022年2022年关于C#压缩类的使用方法 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年关于C#压缩类的使用方法 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、using System; using System.Collections.Generic; using System.Text; using System.IO; using ICSharpCode.SharpZipLib; using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Checksums; /*/* * 解压缩 * 该程序压缩和解压配合才能使用 * 普通用 Winrar 压缩的文件该解压不能通过 * Modify By HJ 2007-10-25 */*/ /压缩类/ publicclassZipClas
2、s /*/ /递归压缩文件夹方法/ / / / privatestaticboolZipFileDictory(stringFolderToZip, ZipOutputStream s, stringParentFolderName) bool res = true ; string folders, filenames; ZipEntry entry = null ; FileStream fs = null ; Crc32 crc = new Crc32(); try / 创建当前文件夹 entry = new ZipEntry(Path .Combine(ParentFolderName
3、, Path .GetFileName(FolderToZip) + / ); / 加上“ / ”才会当成是文件夹创建 s.PutNextEntry(entry); s.Flush(); / 先压缩文件,再递归压缩文件夹 filenames = Directory.GetFiles(FolderToZip); foreach ( string file in filenames) / 打开压缩文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - -
4、- - - - fs = File .OpenRead(file); byte buffer = new byte fs.Length; fs.Read(buffer, 0, buffer.Length); entry = new ZipEntry(Path .Combine(ParentFolderName, Path .GetFileName(FolderToZip) + / + Path .GetFileName(file); entry.DateTime = DateTime .Now; entry.Size = fs.Length; fs.Close(); crc.Reset();
5、crc.Update(buffer); entry.Crc = crc.Value; s.PutNextEntry(entry); s.Write(buffer, 0, buffer.Length); catch res = false; finally if (fs != null ) fs.Close(); fs = null ; if (entry != null ) entry = null ; GC .Collect(); GC .Collect(1); folders = Directory.GetDirectories(FolderToZip); foreach ( string
6、 folder in folders) if (!ZipFileDictory(folder, s, Path .Combine(ParentFolderName, Path .GetFileName(FolderToZip) returnfalse ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - return res; /*/ /压缩目录/ /待压缩的文件夹,全路径格式 /压缩后的文件名,全路径格式 / privatest
7、aticbool ZipFileDictory(string FolderToZip, string ZipedFile, StringPassword) bool res; if (!Directory.Exists(FolderToZip) returnfalse; ZipOutputStream s = new ZipOutputStream(File .Create(ZipedFile); s.SetLevel(6); s.Password = Password; res = ZipFileDictory(FolderToZip, s, ); s.Finish(); s.Close()
8、; return res; /*/ /压缩文件/ /要进行压缩的文件名 /压缩后生成的压缩文件名 / privatestaticbool ZipFile(string FileToZip, string ZipedFile, String Password) / 如果文件没有找到,则报错if (!File .Exists(FileToZip) thrownew System.IO.FileNotFoundException( 指定要压缩的文件: + FileToZip + 不存在 ! ); /FileStream fs = null; FileStream ZipFile = null ; Z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年关于C#压缩类的使用方法 2022 年关 C# 压缩 使用方法
限制150内