Подтвердить что ты не робот

Как создать temp dir в Ruby?

Как создать временный каталог в Ruby красивым способом? Я также хотел бы удалить его автоматически при выходе из процесса. Спасибо!

4b9b3361

Ответ 1

См. документацию для tmpdir. Если метод mktmpdir снабжен блоком, то временный dir будет удален при возврате блока. В вашем случае вы вызываете без удаления блока и дескриптора позже (= выход программы).

Что касается автоматического удаления при выходе, я думаю, что 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

Ответ 2

Используйте метод Dir.mktmpdir, из stdlib