我有一个问题,下载到本地文件是锁定它,直到我杀死了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) }谢谢。
发布于 2009-06-12 15:18:39
使用块调用方法open通常会在块执行完成后立即关闭文件。如果不使用块,open return将返回一个文件(句柄),该文件将在下一次垃圾收集发生时释放。
https://stackoverflow.com/questions/987141
复制相似问题