我有一堆ZIP文件,迫切需要一些分层重组和提取.目前我能做的是创建目录结构并将zip文件移动到正确的位置.我缺少的神秘奶酪是从ZIP档案中提取文件的部分.
我已经在ZipArchive课堂上看过MSDN文章并且理解它们很合理.我也看过VBScript的提取方法.这不是一个复杂的类,因此提取东西应该非常简单.事实上,它"主要"起作用.我已将下面的当前代码包含在内以供参考.
using (ZipPackage package = (ZipPackage)Package.Open(@"..\..\test.zip", FileMode.Open, FileAccess.Read))
{
PackagePartCollection packageParts = package.GetParts();
foreach (PackageRelationship relation in packageParts)
{
//Do Stuff but never gets here since packageParts is empty.
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题似乎存在于某个地方GetParts(或者就任何事情而言).看来打开的包是空的.深入挖掘调试器显示私有成员_zipArchive显示它实际上有部分.具有正确名称和一切的零件.为什么GetParts函数不能检索它们?我试过向ZipArchive开放,但没有帮助.哎呀.
我有一个程序(用C#编写)直接读取/写入数据(没有服务器的直接文件访问)到firebird数据库文件.为了更好的交换,我希望(un)在导入/导出时压缩它们,以便通过互联网进行更好的交换,而无需外部程序来(不)压缩它们.
我知道#ziplib支持Zip,GZip,Tar和BZip2.
你知道C#还有哪些免费的压缩库?是否有支持LZMA的.NET库,因此我可以读/写".7z"文件?