Ruby open-uri文件锁定

时间:2009-06-12 15:04:37

标签: ruby file file-io open-uri

我有一个问题,下载到本地文件锁定它直到我杀死ruby脚本。在预感中,我改变了调用的形式,现在它没有锁定文件。

有人可以告诉我为什么下面的第二个表格没有锁定文件但是第一个表格没有?

此表单锁定本地文件:

open(ver_local_zip, "w+").write(open(remote_zip, :proxy=>ftp_proxy).read)

此表单不会锁定文件:

open(ver_local_zip, "w+") { |f| f.write(open(remote_zip, :proxy=>ftp_proxy).read) }

感谢。

1 个答案:

答案 0 :(得分:2)

使用块调用方法打开通常会在块执行完成后立即关闭文件。如果没有块,则打开返回将在下一次垃圾收集发生时释放的文件(句柄)。