使用Visual Basic 2010的Zip文件夹
问题描述:
我一直在寻找它,但我一直无法找到它。我想知道是否可以Zip文件夹没有任何外部dll或任何外部参考 - 只是本机功能。使用Visual Basic 2010的Zip文件夹
我已经能够使用System.IO.Packaging压缩文件,但它不包括文件夹,我不能告诉它压缩父文件夹。
我知道有外部的DLL等,但我想知道是否有可能从本地的方式。
谢谢。
答
最好的办法是使用第三方库。但是,如果你不能找到这篇博客文章,它描述了如何使用System.IO.Packaging实现它。 注意,这是c#不是vb,但是框架的例子使用是你所需要的。
private static void AddFileToZip(string zipFilename, string fileToAdd, string sDirectory)
{
using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate))
{
string destFilename = ".\\" + sDirectory + "\\" + Path.GetFileName(fileToAdd);
Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
if (zip.PartExists(uri))
{
zip.DeletePart(uri);
}
PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal);
using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read))
{
using (Stream dest = part.GetStream())
{
CopyStream(fileStream, dest);
}
}
}
}
该职位引用another post by Jon Galloway谈到有关第三方库和做手工。这也是一个很好的参考。