【问题标题】:p7zip on Android-Extracting 7z archive on AndroidAndroid 上的 p7zip-在 Android 上解压 7z 压缩包
【发布时间】:2013-10-21 20:24:26
【问题描述】:

我正在编写一个需要提取 7z 档案的 Android 应用程序。时间紧迫,我正在搜索可以在我的项目中使用的第三方库或源代码。

起初,我从http://sourceforge.net/projects/p7zip/files/J7Zip/ 找到J7zip 修改了两个示例类后,就可以在我的项目中使用了,好激动!但问题是: 1. 提取较大的档案时会导致内存不足错误 2. 它只支持使用 Copy 或 LZMA 编解码器的档案。我对此感到非常难过...

然后,我在 StackOverflow 中找到了这个:“J7zip on Android - Extracting From an Archive and Listing Contents”。我的要求与这个问题非常相似。正如它提到的 andro7z,它包含来自:http://sourceforge.net/projects/p7zip/files/p7zip/ 的 C/C++ 代码;我相信这对我来说是一个很好的解决方案。

andro7z 不包含“如何使用”文档,而且我是 JNI 的新手,我不知道如何修改 andro7z 以适应我的项目。那么,有人用 andro7z 实现了提取 7z 存档吗?你能分享我的演示代码或实现这个的步骤吗?谢谢!

【问题讨论】:

  • 谁能给我看一下实现了使用7z源代码提取7z存档的C++方法?

标签: android java-native-interface archive 7zip


【解决方案1】:

我自己完成了这个项目,“jni/7z”和“src”文件夹下的类需要自己实现;如果需要支持加密存档,需要调用7z.dll中的方法或修改源代码在C/CPP文件夹中,C/CPP是7z源代码。

【讨论】:

  • 很高兴看到你已经成功了。您能否提供一些代码和更多信息?
  • jni C++ 代码:const char* args[5] = {"7za", "x", tarPath, extFile, 0}; jint 结果 = andro7za_main(ARGC, args); java调用代码:public static native int extract(String targetPath, String extractFilePath); int result = extract("-o" + targetPath, extractFilePath);
猜你喜欢
  • 2012-08-07
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
  • 2010-10-15
  • 2011-12-03
  • 2015-08-06
  • 1970-01-01
  • 2012-07-07
相关资源
最近更新 更多