我需要以编程方式将zip存档解压缩到Windows Mobile上的文件夹。是否有一个易于使用的API,我可以直接使用,还是应该使用一些外部库?
答案 0 :(得分:7)
您需要一个外部库。有一个zlibce.dll,一个本机DLL,如果你是C ++,你可以使用它。
如果你的.NET是你的东西,那么我可以推荐在.NETCF 2.0上运行的DotNetZip是免费的,开源的,并且具有良好的文档,良好的性能。在DotNetZip源代码发布中,有一个可以查看和编译的CF-Unzipper项目;它演示了如何解压缩设备上的文件。这是一个链接,您可以view the code获取设备应用。
这是代码的zip相关部分的剪辑。它解压缩到一个名称来自zip文件的目录(没有.zip扩展名)。
private void UnzipSelectedFile()
{
string parent = System.IO.Path.GetDirectoryName(_selectedpath);
string dir = System.IO.Path.Combine(parent,
System.IO.Path.GetFileNameWithoutExtension(_selectedpath));
try
{
using (var zip1 = new Ionic.Zip.ZipFile(_selectedpath))
{
foreach (var entry in zip1)
{
entry.Extract(dir, true);
}
}
// re-populate the treeview with the extracted files:
AddChildren(tvFolders.SelectedNode.Parent);
}
catch (Exception ex)
{
MessageBox.Show("Exception! " + ex);
}
}
这是图书馆an online version of the doc的链接。
答案 1 :(得分:0)
如果您使用的是.Net Compact Framework,则可以使用http://www.icsharpcode.net/OpenSource/SharpZipLib。我相信它支持在CF上运行。
答案 2 :(得分:-1)
无论您使用何种语言,都可以使用Info-ZIP作为外部可执行文件。