R函数download.file出错:打开的文件太多
我正在使用:R函数download.file出错:打开的文件太多,r,windows,url,download,locking,R,Windows,Url,Download,Locking,我正在使用: download.file(url,path_file,mode="wb",quiet=quiet) 使用Windows 7上的R版本3.2.3(2015-12-10)复制大量图像(TIFF文件)。我必须复制大量文件:300'00,但由于以下问题在某个点失败: 无法打开文件“tmp/74114070005_531__0.tiff”,原因是 “打开的文件太多” 问题是,url的副本有时会失败,R会创建一个大小为0字节的空文件,但Windows会锁定该文件,因此我无法删除它。因此,
download.file(url,path_file,mode="wb",quiet=quiet)
使用Windows 7上的R版本3.2.3(2015-12-10)复制大量图像(TIFF文件)。我必须复制大量文件:300'00,但由于以下问题在某个点失败:
无法打开文件“tmp/74114070005_531__0.tiff”,原因是
“打开的文件太多”
问题是,url的副本有时会失败,R会创建一个大小为0字节的空文件,但Windows会锁定该文件,因此我无法删除它。因此,失败的文件一直保持打开状态,直到我退出R。经过一定数量的失败复制后,我得到了上面的错误“打开的文件太多”
是否有方法关闭每个文件的连接?我尝试了closeAllConnections(),但没有效果
有没有办法运行一个R命令行来“重新启动”R程序,这样Windows就可以解锁文件了
任何其他想法都欢迎
谢谢
Fabien这是锁定文件的Windows的问题。最好的办法是避开窗户。对于需要使用Windows的用户,有一个解决方案。我用Windows 7测试了它:
- 从以下位置复制handle.exe(或handle64.exe):
- 以管理员身份打开cmd提示符windwos
- 查找锁文件的句柄:handle64.exe-nobanner-p python.exe pattern\u
- handle64.exe-p pid_your_文件-c handle_your_文件
这避免了所有这些被锁定的文件也许你在使用httr::GET(url,httr::write_disk(path))@0时运气会更好,谢谢。我还没有尝试,但我选择上一个函数的原因是,由于“wininet”,它会自动获取凭据。使用其他工具,我成功地进行了代理身份验证,但后来我被卡在了我公司的Kerberose身份验证上。恐怕我会先处理这个问题。在Windows中解锁文件看起来并不容易。尝试重新启动似乎是一个可能的选择,如果我设法做到这一点。谢谢