c#递归压缩文件夹方法
2016-07-01 14:22
555 查看
#region 私有方法 /// <summary> /// 递归压缩文件夹方法 //转载请注明来自 http://www.shang11.com /// </summary> private static bool ZipFileDictory(string FolderToZip, ZipOutputStream s, string ParentFolderName) { bool res = true; string[] folders, filenames; ZipEntry entry = null; FileStream fs = null; Crc32 crc = new Crc32(); try { entry = new ZipEntry(Path.Combine(ParentFolderName, Path.GetFileName(FolderToZip) + "/")); s.PutNextEntry(entry); s.Flush(); filenames = Directory.GetFiles(FolderToZip); foreach (string file in filenames) { 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(); 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 folder in folders) { if (!ZipFileDictory(folder, s, Path.Combine(ParentFolderName, Path.GetFileName(FolderToZip)))) { return false; } } return res; }
相关文章推荐
- c#导出Excel文件,转换为可读模式
- c#获取远程主机MAC
- c#获取远程主机IP
- c#获取本机的MAC
- C#之AES256位加密解密
- C#数据导出到Excel文件
- 20 如何在C#中存一批数据,数组
- C#调试跟踪函数的使用及找出最大值及最大值所在索引
- c#数字转换为大写汉字
- C#StreamReader 读取Txt文件
- c#删除指定目录下所有内容:方法二--找到所有文件和子文件夹删除
- c#删除指定目录下所有内容
- C#移动文件夹中的所有文件夹与文件到另一个文件夹
- c# 复制文件夹中的所有文件夹与文件到另一个文件夹
- C# WinForm捕获全局异常
- C#通过获取CMD里ipconfig命令的结果来得到IP
- C#获取本机局域网地址
- c#获取公网IP
- c# 无法加载xxx.dll 找不到指定的模块
- github 添加 C# IGNORE