R语言中如何解压多个分卷构成的zip压缩包
R 分卷ZIP压缩包解压方案
你的需求可以实现。R 内置的unzip()函数暂不支持分卷ZIP的直接解压,你可以通过以下两种常用方案,实现仅指定首个分卷即可自动完成全部分卷的解压操作。
方案1:使用跨平台archive包(推荐)
CRAN 发布的archive包原生支持分卷ZIP识别,跨Windows、macOS、Linux通用,无需额外配置系统工具:
- 首先安装包:
install.packages("archive")
- 解压代码示例:
library(archive) # 仅指定第一个分卷路径,函数会自动匹配同目录下的其余分卷文件 first_part <- "myfile.zip001" # 第二个参数dir指定解压输出目录,不存在会自动创建 archive_extract(first_part, dir = "./target_output_dir")
方案2:调用系统原生解压工具
如果你不想安装额外的R包,可以直接调用操作系统自带的解压工具实现:
Linux/macOS 环境
系统自带的unzip命令天然支持分卷解压,直接调用即可:
first_part <- "myfile.zip001" output_dir <- "./target_output_dir" dir.create(output_dir, showWarnings = FALSE, recursive = TRUE) system(paste0("unzip ", shQuote(first_part), " -d ", shQuote(output_dir)))
Windows 环境
安装7-Zip压缩工具后,调用7z命令即可实现:
first_part <- "myfile.zip001" output_dir <- "./target_output_dir" dir.create(output_dir, showWarnings = FALSE, recursive = TRUE) # 替换为你本地7z.exe的实际安装路径,默认安装路径如下 seven_zip_path <- "C:/Program Files/7-Zip/7z.exe" system(paste0(shQuote(seven_zip_path), " x ", shQuote(first_part), " -o", shQuote(output_dir), " -y"))
可复现示例生成建议
你可以通过7-Zip工具生成测试用的分卷压缩包:在命令行执行以下命令,即可将目标文件压缩为单个大小100M的分卷ZIP包,生成的文件命名格式和你示例中的myfile.zip001完全一致:
7z a -v100m myfile.zip 待压缩的源文件路径
内容的提问来源于stack exchange,提问作者JAQuent
相关产品推荐
相关产品推荐

