gpt4 book ai didi

ruby - 如何关闭和删除 Ruby 中的文件?

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:52 25 4
gpt4 key购买 nike

假设我像这样在 Ruby 中打开一个文件:

f = File.open('diagram.txt', 'r')

现在,为了关闭和删除该文件,我有以下代码:

begin
f = File.open('diagram.txt', 'r')
ensure
if !f.nil? && File.exist?(f)
f.close unless f.closed?
File.delete(f)
end
end

我发现这段代码太复杂了,如果 f 已经关闭,File.exist?(f) 会失败。那么,避免关闭和删除文件引发异常的正确方法是什么?

注意:我知道将 block 传递给 File.open 会直接关闭文件,但是,我正在寻找关闭和删除的一般方法。

最佳答案

处理 Errno::ENOENT 异常

由于您的 diagram.txt 文件不能保证存在于您的示例代码中,您更大的问题是处理 Errno::ENOENT 异常。您可以调用File#open在一个自动关闭的 block 中,然后如果您尝试打开或删除丢失的文件,则使用 rescue 来处理异常。例如:

begin
File.open('diagram.txt', 'r') do |f|
# do something with file
File.delete(f)
end
rescue Errno::ENOENT
end

关于ruby - 如何关闭和删除 Ruby 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25269803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com