问题标签 [libzip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - libzip:在加载之前验证 zip 文件
我使用 libzip 在我的应用程序中打开 zip 文件,为了确保在 zip 文件损坏的情况下表现良好,我手动损坏了一个 zip 文件(通过使用文本编辑器删除一些随机行)并尝试加载该文件。但是,这会挂起整个应用程序,因为 zip_fread() 永远不会返回。
是否有在加载之前确定 zip 文件是否有效以避免这种情况的地方?
更新
行为似乎取决于版本,所以我可能只需要更新。这是我在 Windows、Mac OS 和 Linux 上使用的代码:
在 OS X 上,这个片段不会返回错误(我对所有平台都使用了相同的文件)。相反,下面的 zip_read() 调用只是挂起。在其他平台上 zip_read() 立即返回结果 < 0,因此很容易在此处捕获错误。
windows - libzip Windows compilation for libraries
I need libzip.lib .h to use libzip in other projects. So I followed libzip with Visual Studio 2010 and all is fine until step 11. In fact, I open C:\devel\libzip-0.10.1\build\libzip.sln, execute "Generate the solution" and I get the following errors :
First :
2> zip_set_file_compression.c
2>....\lib\zip_set_file_compression.c(63): error C2275: 'zip_int32_t' : non conform use of this type as expression
2> C:/devel/libzip-0.11.1/lib\zipconf.h(33) : see declaration of 'zip_int32_t'
2>....\lib\zip_set_file_compression.c(63): error C2146: syntax error : missing ';' before identifier 'old_method'
2>....\lib\zip_set_file_compression.c(63): error C2065: 'old_method' : non declared identifier
2>....\lib\zip_set_file_compression.c(67): error C2065: 'old_method' : non declared identifier
I didn't change anything in source files so ... I don't understand. I'll check the file to see but I don't want to change things and then nothing works!
And secondly :
LINK : fatal error LNK1181: impossible to open file '..\lib\Release\zip.lib'
And indeed, I don't have any zip.lib file! Where do I get it? Has it to be created/generated in one of the steps 1 to 10? Do I have to get it on web?
android - 安卓NDK。libzip 停止到子文件夹
我libzip
用来阅读原生代码中的 APK 内容。
assets/sounds/voice
仅针对 libzip 功能的文件夹“消失”。
libzip
仍然看到其他文件。- 我仍然可以
assets/sounds/voice
在项目文件夹中看到它。 - 我做
clean
了很多次。 - 我仍然可以
APK
从bin
文件夹中解压缩文件,并且可以看到所有必需的文件。(包括文件assets/sounds/voice
夹中的文件)
我添加了小型日志记录命令,它不会打印文件assets/sounds/voice
夹中的文件。所有其他文件都存在。
我不知道在哪一步出了什么问题。eclipse 是否使用我的 libzip 无法读取的新格式压缩 ZPK?或者可能是什么原因。
java - Jenkins Java 编译导致 Java 崩溃
当我尝试在我的 Jenkins 服务器中使用 Gradle 编译一些 Java 代码时,我一直在 Java 中崩溃。有人知道任何可能的解决方案吗?似乎libzip有某种问题......
我正在使用 Ubuntu 服务器。完整的错误报告: http: //pastebin.com/dnmFTbLg
有谁知道为什么 Java 在尝试执行编译时崩溃?
c++ - Extracting data from compressed file returns random data
I'm using libzip to extract the content of each file in a zip into my own data structure, a C++ immutable POD.
The problem is that every time I extract the content of a file, I get some random data with tacked on to the end. Here's my code:
c++ - 创建 ZIP 存档压缩级别 (libzip)
我正在尝试使用 libzip 压缩文件,我似乎成功了,但我似乎无法找到一种方法来更改我必须重新实现的压缩级别(zip 工具支持从 1(最快压缩速度)到 9(最小存档)的值) . 有没有办法这样做?
c++ - libzip 无法关闭文件
我目前在 C++11 程序中使用 libzip 来提取压缩文件的内容并将它们存储到一个数据结构中,该结构还将保存与文件相关的元数据。
我正在使用当前的方法来分解 zip 文件并获取其中每个文件的内容:
我的问题是我得到 gdb 指向的随机分段错误zip_fclose(file);
:
调试这个的最佳方法是什么?正如我所说,它间歇性地发生,所以很难确定确切的原因。
android - Kindle Fire HD 上未加载 APK 资源
我为 Amazon Kindle Fire HD 开发了一个应用程序。在分发时,我从亚马逊收到一份报告,称它几乎没有在所有 Kindle 设备上运行,并且显示黑屏。他们向我发送了一个 logcat 日志文件,我发现无法直接从 APK 文件加载某些资产(通过 C++、zlib 和 libzip 访问)。
如果我通过 Eclipse 启动它,一切都运行良好。
知道出了什么问题吗?谢谢!
更新:
我发现这与zip_open()
. 此调用失败并返回ZIP_ER_INCONS
c++ - 未声明手册中的 Libzip zip_dir_add - C/C++
我对 C/C++ 编程很陌生,所以请考虑到这一点。
问题 :
在使用 libzip 库时,据说手册中描述的某些函数在编译时没有在作用域中声明。我阅读了 2011 年编写的本教程(法语抱歉)。它使用不同的函数名称(zip_dir_add 是 zip_add_dir 等。)
我认为这可能是由于安装过程。或者也许我忘了包含一些文件..
这是我到目前为止所做的:
1) 使用 ubuntu 包安装 libzip 库,如下所示:
2)在简单的代码上尝试
这将返回: zip_dir_add 未在此范围内声明
知道是什么原因造成的吗?
提前致谢 !
c++ - C++ Libzip + 删除 = 核心转储
使用 libzip 时遇到问题。我在 linux 上并且已经使用sudo apt-get install libzip2 libzip-dev
(所以它不是最新版本)安装了库。
这是我的代码:
此代码应该获取 filesToZip 文件夹中的两个文件并将它们压缩到 filesZip 文件夹中的 zipTest 文件中。
为此,首先它检查 zipTest 文件是否已经存在。如果是这样,则将其删除。然后它会打开一个 zip 存档,压缩要添加的文件并将它们添加到存档中,然后再关闭存档。
所以我的问题是:
当 zip 存档文件 Zip/zipTest 不存在时,它就可以正常工作。当 zip 存档文件Zip/zipTest 确实存在时,我得到了一个核心转储。
到目前为止我已经尝试过:
- 我认为这是因为我使用字符串作为文件名。我尝试使用 char 并没有改变任何东西
- 然后我认为这是因为删除任务没有完成,然后可能会遇到冲突。所以我在每个函数调用之后都放了 sleep(180) (以秒为单位)。它没有改变任何东西
- 我还尝试仅将一个文件放入存档中。没有改变任何东西
- 我跑 gdb 看看发生了什么。当 zip 存档已经存在但不存在时,我都尝试了。
- 如果存档不存在:一切顺利,直到返回 0,然后我看到程序重新定义了 fileToZip 和 fileToZip2,然后再次返回 0,然后将停止。
- 如果存档已经存在:它会做同样的事情,但会说找不到当前函数的边界。(我在这里读到这意味着 gdb 没有调试信息并且对此不满意..)
有谁知道我的问题是什么?