避免使用Xceed.Zip.QuickZip.Zip实用程序创建不必要的目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免使用Xceed.Zip.QuickZip.Zip实用程序创建不必要的目录相关的知识,希望对你有一定的参考价值。
我在我的应用程序中使用付费版本的Xceed.Zip.QuickZip.Zip实用程序来压缩包含文件和目录的文件夹。这是我正在使用的Xceed Zip命令
Xceed.Zip.Licenser.LicenseKey = XceedZipKey;
Xceed.Zip.QuickZip.Zip(ZipFilePath, true, true, true, filesToZip);
ZipFilePath是thr final zip的名称,包括将创建zip的路径。所以它就像D: MyData / MyZip.zip
而且,filesToZip就像这样D: MyDataToZip Versions *。*
因此,当创建zip时,我会看到一个MyDataToZip文件夹,其中包含Versions文件夹,然后是Version文件夹中的所有内容。
但我希望zip不包含MyDataToZip&Versions文件夹。它应该从Versions文件夹开始。我怎样才能做到这一点?
请注意我的应用程序是基于.Net 4.0构建的,因此我无法使用System.IO.Compression :(
在这方面的任何帮助将不胜感激。谢谢
使用Xceed FileSystem API以保留目标文件夹中的文件路径。
public void ZipFolder(string zipFilePath, string folderPath, bool recursive, bool replaceExistingFiles, params object[] filters)
{
AbstractFile zipFile = new DiskFile(zipFilePath);
ZipArchive zip = new ZipArchive(zipFile);
using (AutoBatchUpdate batch = new AutoBatchUpdate(zip))
{
AbstractFolder sourceFolder = new DiskFolder(folderPath);
sourceFolder.CopyFilesTo(zip, recursive, replaceExistingFiles, filters);
}
}
你需要使用
Xceed.Zip.QuickZip.Zip(ZipFilePath, true, true, false, filesToZip);
作为第4个参数是:
preservePaths
布尔值,指示是否应在zip文件中保留目录结构。
REF: Zip(String,Boolean,Boolean,Boolean,String[]) Method
以上是关于避免使用Xceed.Zip.QuickZip.Zip实用程序创建不必要的目录的主要内容,如果未能解决你的问题,请参考以下文章
Proguard:如何避免缩小(和混淆)整个包以避免删除(和混淆)“未使用的方法”?
[机缘参悟-76]:沟通技巧-职场中常见不合适语言的案例分析(尽量避免使用反问式语言)