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