zip文件结构分析

hktkzyz 2017-01-14 11:36:45
1、如题,现在处理zip文件,其中有文件,有文件夹,我想提取出文件夹中的文件,单独进行解压,查了一些资料,也了解一些zip的文件结构。
现在可以做到的是zip中某个文件的单独解压,但是zip中文件夹下的文件,结构不知如何处理,望高手指教。

2、请问这类问题,应该放在哪个版块发帖

3、论坛让我结贴某个帖子,但是帖子是没人回复的,我该怎么方式结贴,积分怎么办,能返回吗
...全文
649 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2017-01-17
  • 打赏
  • 举报
回复
C:\Program Files\WinRAR>rar

RAR 5.21    版权所有 (C) 1993-2015 Alexander Roshal    15 二月 2015
已注册给 HongXJ

用法:     rar <命令> -<参数 1> -<参数 N> <压缩文件> <文件...>
               <@列表文件...> <解压路径\>

<命令>
  a             添加文件到压缩文件
  c             添加压缩文件注释
  ch            更改压缩文件参数
  cw            将压缩文件注释写入文件
  d             从压缩文件里删除文件
  e             提取文件无需压缩文件的路径
  f             更新压缩文件里的文件
  i[par]=<str>  查找压缩文件里的字符串
  k             锁定压缩文件
  l[t[a],b]     列出压缩文件内容 [technical[all], bare]
  m[f]          移动到压缩文件 [仅文件]
  p             打印文件到 stdout
  r             修复压缩文件
  rc            重建丢失的分卷
  rn            重命名压缩的文件
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[name|-]     转换压缩文件为自解压或自解压转换为压缩文件
  t             测试压缩文件
  u             更新压缩文件中的文件
  v[t[a],b]     详尽地列出压缩文件内容 [technical[all],bare]
  x             以完整路径提取文件

<参数>
  -             停止参数扫描
  @[+]          禁用 [启用] 文件列表
  ac            压缩或解压后清除存档属性
  ad            添加压缩文件名到目标路径
  ag[格式]      使用当前日期生成压缩文件名
  ai            忽略文件属性
  ao            添加具有压缩属性的文件
  ap<格式>      添加路径到压缩文件中
  as            同步压缩文件内容
  c-            禁用注释显示
  cfg-          禁用读取配置
  cl            转换名称为小写
  cu            转换名称为大写
  df            压缩文件后删除原来的文件
  dh            打开共享的文件
  dr            删除文件到回收站
  ds            对固实压缩文件禁用名称排序
  dw            压缩文件后清除文件
  e[+]<attr>    设置文件排除和包含属性
  ed            不要添加空目录
  en            不要放置 '压缩文件结束' 区块
  ep            从名称里排除路径
  ep1           从名称里排除基目录
  ep2           扩展路径到完整路径
  ep3           扩展路径为完整路径包括驱动器盘符
  f             更新文件
  hp[password]  加密文件数据和文件头
  ht[b|c]       为文件校验和选择哈希类型 [BLAKE2,CRC32]
  id[c,d,p,q]   禁用消息
  ieml[addr]    通过电邮发送压缩文件
  ierr          发送所有消息到 stderr
  ilog[name]    记录错误到文件(仅注册的版本)
  inul          禁用所有消息
  ioff          完成操作后关闭电脑
  isnd          启用声音
  k             锁定压缩文件
  kb            保留损坏的已解压缩文件
  log[f][=name] 将名称写入日志文件
  m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
  ma[4|5]       指定压缩格式的一个版本
  mc<par>       设置高级压缩参数
  md<n>[k,m,g]  字典大小显示为 KB, MB 或 GB
  ms[ext;ext]   指定要存储的文件类型
  mt<threads>   设置线程数
  n<file>       额外的包含过滤器的文件
  n@            从 stdin 读取额外的过滤器掩码
  n@<list>      从列表文件读取额外的过滤器掩码
  o[+|-]        设置覆盖模式
  oc            设置 NTFS 压缩属性
  oh            将硬链接保存为链接而非文件
  oi[0-4][:min] 将完全相同的文件保存为引用
  ol[a]         将符号链接作为链接处理 [绝对路径]
  or            自动重命名文件
  os            保存 NTFS 流
  ow            保存或恢复文件所有者和组
  p[password]   设置密码
  p-            不要查询密码
  qo[-|+]       添加快速打开信息 [无|强制]
  r             递归子目录
  r-            禁用递归
  r0            仅为通配符名称递归子目录
  ri<P>[:<S>]   设置优先级 (0-默认,1-最小..15-最大) 和睡眠时间为 ms
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[<N>,v[-],e] 创建固实压缩文件
  s-            禁用固实压缩文件
  sc<chr>[obj]  指定字符集
  sfx[name]     创建自解压文档
  si[name]      从标准输入 (stdin) 读取数据
  sl<size>      处理小于指定大小的文件
  sm<size>      处理大于指定大小的文件
  t             压缩文件后测试文件
  ta<date>      处理在 <日期> 之后修改过的文件,以 YYYYMMDDHHMMSS 格式
  tb<date>      处理在 <日期> 之前修改过的文件,以 YYYYMMDDHHMMSS 格式
  tk            保存原来的压缩文件时间
  tl            设置压缩文件时间为最新的文件
  tn<time>      处理比 <时间> 较新的文件
  to<time>      处理比 <时间> 较旧的文件
  ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
  u             更新文件
  v<size>[k,b]  创建分卷大小为=<size>*1000 [*1024, *1]
  vd            创建分卷之前清除磁盘内容
  ver[n]        文件版本控制
  vn            使用旧式的分卷命名方案
  vp            创建每个分卷之前暂停
  w<path>       指定工作目录
  x<file>       排除指定的文件
  x@            读取文件名以从 stdin 排除
  x@<list>      排除指定列表文件里列出的文件
  y             对所有询问假定选择“是”
  z[file]       从文件读取压缩文件注释
无·法 2017-01-17
  • 打赏
  • 举报
回复
rar.exe应该会有提供单独解压某个文件的命令,具体看看那个命令方式说明书吧,好复杂
赵4老师 2017-01-17
  • 打赏
  • 举报
回复
引用 7 楼 hktkzyz 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:] 直接Shell调用解压zip的命令行工具。
这个是调用zip的dll?命令行方式没有用过[/quote] 搜“好压命令行参数”
Tiger_Zhao 2017-01-17
  • 打赏
  • 举报
回复
我#5给你的链接,里面有完整的代码。
向上退一级,还有其它几个 zip 相关的文章。
hktkzyz 2017-01-17
  • 打赏
  • 举报
回复
引用 4 楼 of123 的回复:
引用 3 楼 of123 的回复:
你试试自己回复一下。在结贴时将分数给自己的回复。
刚才查了规则。没有回复的帖子,楼主可以删贴,分数将返回楼主。
谢谢,我试试。
hktkzyz 2017-01-17
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
直接Shell调用解压zip的命令行工具。
这个是调用zip的dll?命令行方式没有用过
hktkzyz 2017-01-17
  • 打赏
  • 举报
回复
引用 1 楼 vansoft 的回复:
把ZIP文件全解出来,然后就把想要压缩的文件夹再压缩啊。
如果是几百兆的文件就尴尬了。
of123 2017-01-16
  • 打赏
  • 举报
回复
引用 3 楼 of123 的回复:
你试试自己回复一下。在结贴时将分数给自己的回复。
刚才查了规则。没有回复的帖子,楼主可以删贴,分数将返回楼主。
of123 2017-01-16
  • 打赏
  • 举报
回复
你试试自己回复一下。在结贴时将分数给自己的回复。
赵4老师 2017-01-16
  • 打赏
  • 举报
回复
直接Shell调用解压zip的命令行工具。
vansoft 2017-01-14
  • 打赏
  • 举报
回复
把ZIP文件全解出来,然后就把想要压缩的文件夹再压缩啊。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧