执行R代码解压ZIP至临时文件夹时出现Error 1问题求助
关于eBird代码解压报错的问题解答
运行eBird相关代码时,执行解压步骤出现以下警告,导致流程中断:
Warning message: In unzip(tmp_bcr, exdir = tmp_dir) : error 1 in extracting from zip file
涉及的代码片段:
# download bcrs tmp_dir <- normalizePath(tempdir()) tmp_bcr <- file.path(tmp_dir, "bcr.zip") paste0("https://www.birdscanada.org/research/gislab/download/", "bcr_terrestrial_shape.zip") %>% download.file(destfile = tmp_bcr) unzip(tmp_bcr, exdir = tmp_dir)
你提到路径中同时存在正反斜杠:
> tmp_bcr [1] "C:...\\AppData\\Local\\Temp\\Rtmpm8LNRB/bcr.zip"
核心结论
路径中的混合斜杠不是报错的原因。R在Windows系统下可以兼容正反斜杠混合的路径,file.path()生成这类路径属于正常情况,不会影响文件读写或解压操作。
可能的真正原因及解决办法
zip文件下载损坏
这是最常见的原因。download.file()在Windows下默认用文本模式下载,而zip是二进制文件,容易出现下载不完整的情况。修正方法是添加mode = "wb"参数:# 修正后的下载代码 download.file(url = paste0("https://www.birdscanada.org/research/gislab/download/", "bcr_terrestrial_shape.zip"), destfile = tmp_bcr, mode = "wb")解压工具或权限问题
- 尝试手动打开
tmp_bcr对应的zip文件,如果无法打开,说明文件确实损坏,重新下载即可。 - 如果手动能打开但R解压失败,可以指定系统自带的解压工具路径(比如7-Zip),示例:
unzip(tmp_bcr, exdir = tmp_dir, unzip = "C:/Program Files/7-Zip/7z.exe")
- 尝试手动打开
内容的提问来源于stack exchange,提问作者Rion Lerm
相关产品推荐
相关产品推荐

