minizip-ng是继zlib的contribute下的minizip重构而来的。具体详情参考
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ tree
- .
- ├── a.txt
- └── locker
- └── b.txt
-
- 1 directory, 2 files
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ zip -r ../test.zip ./*
- adding: a.txt (deflated 88%)
- adding: locker/ (stored 0%)
- adding: locker/b.txt (deflated 68%)
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
- minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l ./test.zip
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Length Method Size Attribs Ratio Date Time CRC-32 Name
- ------ ------ ---- ------- ----- ---- ---- ------ ----
- 104 Defl:N 12 81b40000 11% 09-15-22 14:27 2a4b81aa a.txt
- 0 Stored 0 41fd0010 0% 09-15-22 14:28 00000000 locker/
- 31 Defl:N 10 81b40000 32% 09-15-22 14:28 e69714e8 locker/b.txt
- minizip-ng/minizip-ng-2.3.9/build$ ./minizip -x ./test.zip
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Extracting: a.txt
- Error -1 opening locker/
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ ../minizip -i ../test.zip ./*
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Creating ../test.zip
- Adding: ./a.txt
- Adding: ./locker
- Adding: ./locker/b.txt
- minizip-ng/minizip-ng-2.3.9/build/test.dir$
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
- minizip-ng/minizip-ng-2.3.9/build$ ls
- CMakeCache.txt CMakeFiles cmake_install.cmake libminizip.a Makefile minizip minizip.pc test.dir test.zip
- minizip-ng/minizip-ng-2.3.9/build$ ./minizip -x test.zip
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Error -1 opening /a.txt
- minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l test.zip
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Length Method Size Attribs Ratio Date Time CRC-32 Name
- ------ ------ ---- ------- ----- ---- ---- ------ ----
- 104 Defl:N 12 81b4 11% 09-15-22 14:27 2a4b81aa ./a.txt
- 0 Defl:N 0 41fd 0% 09-15-22 14:28 00000000 ./locker/
- 31 Defl:N 10 81b4 32% 09-15-22 14:28 e69714e8 ./locker/b.txt
- minizip-ng/minizip-ng-2.3.9/build$
注意:minizip压缩目录时需要加上-i选项,否则压缩的文件直接时平铺的,没有任何目录在里面
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ tree
- .
- ├── a.txt
- └── locker
- └── b.txt
-
- 1 directory, 2 files
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ ../minizip ../test.zip ./*
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Creating ../test.zip
- Adding: a.txt
- Adding: b.txt
- minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
- minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l test.zip
- Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
- ---------------------------------------------------
- Length Method Size Attribs Ratio Date Time CRC-32 Name
- ------ ------ ---- ------- ----- ---- ---- ------ ----
- 104 Defl:N 12 81b4 11% 09-15-22 14:27 2a4b81aa a.txt
- 31 Defl:N 10 81b4 32% 09-15-22 14:28 e69714e8 b.txt
minizip获取压缩文件条目时,条目属性和os的文件类型没有匹配好而导致的.

后面使用新的minizip板本验证,此问题已经得到解决了.目前在minizip-ng-2.10.6.tar.gz和minizip-ng-3.0.0.tar.gz以及minizip-ng-3.0.6.tar.gz验证都是ok的