• 关于minizip-ng无法解压unix下压缩的带有文件夹的zip文件


    1. 什么是minizip-ng

    minizip-ng是继zlib的contribute下的minizip重构而来的。具体详情参考

    2. minizip-ng库提取unix下zip压缩的目录失败

    2.1unix下zip压缩minizip解压失败

    1. minizip-ng/minizip-ng-2.3.9/build/test.dir$ tree
    2. .
    3. ├── a.txt
    4. └── locker
    5. └── b.txt
    6. 1 directory, 2 files
    7. minizip-ng/minizip-ng-2.3.9/build/test.dir$ zip -r ../test.zip ./*
    8. adding: a.txt (deflated 88%)
    9. adding: locker/ (stored 0%)
    10. adding: locker/b.txt (deflated 68%)
    11. minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
    12. minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l ./test.zip
    13. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    14. ---------------------------------------------------
    15. Length Method Size Attribs Ratio Date Time CRC-32 Name
    16. ------ ------ ---- ------- ----- ---- ---- ------ ----
    17. 104 Defl:N 12 81b40000 11% 09-15-22 14:27 2a4b81aa a.txt
    18. 0 Stored 0 41fd0010 0% 09-15-22 14:28 00000000 locker/
    19. 31 Defl:N 10 81b40000 32% 09-15-22 14:28 e69714e8 locker/b.txt
    20. minizip-ng/minizip-ng-2.3.9/build$ ./minizip -x ./test.zip
    21. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    22. ---------------------------------------------------
    23. Extracting: a.txt
    24. Error -1 opening locker/

    2.2 unix下minizip自压自解都会失败

    1. minizip-ng/minizip-ng-2.3.9/build/test.dir$ ../minizip -i ../test.zip ./*
    2. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    3. ---------------------------------------------------
    4. Creating ../test.zip
    5. Adding: ./a.txt
    6. Adding: ./locker
    7. Adding: ./locker/b.txt
    8. minizip-ng/minizip-ng-2.3.9/build/test.dir$
    9. minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
    10. minizip-ng/minizip-ng-2.3.9/build$ ls
    11. CMakeCache.txt CMakeFiles cmake_install.cmake libminizip.a Makefile minizip minizip.pc test.dir test.zip
    12. minizip-ng/minizip-ng-2.3.9/build$ ./minizip -x test.zip
    13. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    14. ---------------------------------------------------
    15. Error -1 opening /a.txt
    16. minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l test.zip
    17. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    18. ---------------------------------------------------
    19. Length Method Size Attribs Ratio Date Time CRC-32 Name
    20. ------ ------ ---- ------- ----- ---- ---- ------ ----
    21. 104 Defl:N 12 81b4 11% 09-15-22 14:27 2a4b81aa ./a.txt
    22. 0 Defl:N 0 41fd 0% 09-15-22 14:28 00000000 ./locker/
    23. 31 Defl:N 10 81b4 32% 09-15-22 14:28 e69714e8 ./locker/b.txt
    24. minizip-ng/minizip-ng-2.3.9/build$

    注意:minizip压缩目录时需要加上-i选项,否则压缩的文件直接时平铺的,没有任何目录在里面 

    1. minizip-ng/minizip-ng-2.3.9/build/test.dir$ tree
    2. .
    3. ├── a.txt
    4. └── locker
    5. └── b.txt
    6. 1 directory, 2 files
    7. minizip-ng/minizip-ng-2.3.9/build/test.dir$ ../minizip ../test.zip ./*
    8. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    9. ---------------------------------------------------
    10. Creating ../test.zip
    11. Adding: a.txt
    12. Adding: b.txt
    13. minizip-ng/minizip-ng-2.3.9/build/test.dir$ cd ../
    14. minizip-ng/minizip-ng-2.3.9/build$ ./minizip -l test.zip
    15. Minizip 2.3.9 - https://github.com/nmoinvaz/minizip
    16. ---------------------------------------------------
    17. Length Method Size Attribs Ratio Date Time CRC-32 Name
    18. ------ ------ ---- ------- ----- ---- ---- ------ ----
    19. 104 Defl:N 12 81b4 11% 09-15-22 14:27 2a4b81aa a.txt
    20. 31 Defl:N 10 81b4 32% 09-15-22 14:28 e69714e8 b.txt

    2.3 分析原因

    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的

  • 相关阅读:
    SpringMVC简介
    RabbitMQ原理详解
    常用的网络攻击手段
    JAVA中常用序列化与反序列化合集
    Apache Hudi在信息服务行业构建流批一体的实践
    多实例数据库备份脚本 mysql
    java计算机毕业设计在线健康系统设计与实现MyBatis+系统+LW文档+源码+调试部署
    数据库的约束和设计
    加密技术和电子竞技如何促进彼此的发展
    链上房产赛道项目 ESTATEX 研报:以 RWA 的方式释放房产市场的潜力
  • 原文地址:https://blog.csdn.net/haiyanglideshi/article/details/126872727