[英]How to create temp dir in Ruby?
如何以一種不錯的方式在 Ruby 中創建一個臨時目錄? 我還想在進程退出時自動刪除它。 謝謝!
請參閱tmpdir 的文檔。 如果為塊提供了mktmpdir
方法,則在塊返回時將刪除臨時目錄。 在您的情況下,您將在沒有塊的情況下調用並稍后處理刪除(=程序退出)。
關於退出時的自動刪除,我認為 tmpdir 不會為您做到這一點。 但是, at_exit應該會有所幫助。
例如, Homebrew是這樣做的:
require 'tmpdir'
# rest omitted
TEST_TMPDIR = ENV.fetch("HOMEBREW_TEST_TMPDIR") do |k|
dir = Dir.mktmpdir("homebrew-tests-", ENV["HOMEBREW_TEMP"] || "/tmp")
at_exit { FileUtils.remove_entry(dir) }
ENV[k] = dir
end
使用來自 stdlib 的Dir.mktmpdir
方法:
require 'tmpdir'
Dir.mktmpdir do |d|
File.open("#{d}/1.txt", 'w') do |f|
f.write('1.txt')
end
end
# at this point 1.txt and the dir no longer exist
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.