在开发“db元数据验证工具”时,收集项目数据时要生成报告和验证结果数据等文件,这些文件最好是被压缩成一个zip文件以方便传输,使用WindowsBase.dll中System.IO.Packaging命名空间中提供的功能即可完成压缩,WindowsBase.dll是由.Net Framework提供应用程序不必额外附加文件,简要实现过程如下:
1.vs工程中增加WindowsBase.dll引用
2.使用Package创建压缩文件
public static void Zip(string saveFile, params string[] files)
{
FilePathHelper.EnsureFileDirectoryExist(saveFile);
var fs = new FileStream(saveFile, FileMode.OpenOrCreate);
using (Package pz = ZipPackage.Open(fs, FileMode.OpenOrCreate, FileAccess.Write))
{
foreach (var file in files)
{
var fileName = System.IO.Path.GetFileName(file);
var uri = PackUriHelper.CreatePartUri(new Uri("../" + fileName, UriKind.RelativeOrAbsolute));
var part = pz.CreatePart(uri, System.Net.Mime.MediaTypeNames.Text.Xml, CompressionOption.Normal);
using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, part.GetStream());
}
}
}
}