1,引用:using System.IO.Packaging;

2,压缩文件的方法:

/// <summary>
/// 压缩文件夹到制定的路径
/// </summary>
/// <param name="folderName">要压缩的文件物理路径</param>
/// <param name="compressedFileName">目标文件物理路径和文件名</param>
/// <param name="overrideExisting">是否覆盖存在的文件</param>
/// <returns></returns>
static bool PackageFolder(string folderName, string compressedFileName, bool overrideExisting)
{
if (folderName.EndsWith(@"\"))
folderName = folderName.Remove(folderName.Length - );
bool result = false;
if (!Directory.Exists(folderName))
{
return result;
} if (!overrideExisting && File.Exists(compressedFileName))
{
return result;
}
try
{
using (Package package = Package.Open(compressedFileName, FileMode.Create))
{
var fileList = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
foreach (string fileName in fileList)
{ //The path in the package is all of the subfolders after folderName
string pathInPackage;
pathInPackage = Path.GetDirectoryName(fileName).Replace(folderName, string.Empty) + "/"
+ Path.GetFileName(fileName); Uri partUriDocument = PackUriHelper.CreatePartUri(new Uri(pathInPackage, UriKind.Relative));
PackagePart packagePartDocument = package.CreatePart(partUriDocument, "", CompressionOption.Maximum);
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
fileStream.CopyTo(packagePartDocument.GetStream());
}
}
}
result = true;
}
catch (Exception e)
{
throw new Exception("Error zipping folder " + folderName, e);
} return result;
}

最新文章

  1. 快速开发Grunt插件----压缩js模板
  2. RN组件之ScrollView
  3. MFC单文档程序结构
  4. HDU 5828 Rikka with Sequence (线段树+剪枝优化)
  5. 从零开始学android-一行两个按钮居中 布局
  6. MD5方法代码(生成小写的md5) C#版本
  7. [转] Linux Shell 文本处理工具集锦
  8. Xaml 页面布局学习
  9. PDF解决方案(3)--PDF转SWF
  10. 3505: [Cqoi2014]数三角形
  11. Python实现二叉树的四种遍历
  12. js For循环练习。
  13. Markdown格式范例
  14. Thinking in Java学习笔记-泛型和类型安全的容器
  15. Unlink——2016 ZCTF note2解析
  16. Html一些特殊字符(Html语法字符)的一种表达方式
  17. MTSC2018 | 确认过眼神,在这里能遇见Google、阿里、百度......
  18. Linux如何修改和查询时区时间
  19. zookeeper的原理及使用
  20. 服务器搭建--Linux安装erlang

热门文章

  1. 搭建本地yum仓库(centos 7.5)
  2. python python中那些双下划线开头的那些函数都是干啥用用的
  3. Python 上下文管理协议中的__enter__和__exit__基本理解
  4. jmeter中文乱码及Unicode转中文
  5. svn基础了解
  6. POI兴趣点搜索 - 地理信息系统(6)
  7. 随手记一 2018/04/23 Ajax基础了解
  8. APScheduler
  9. 安装LNMP笔记
  10. Swift-Extensions