如何在Ruby中创建临时目录?

如何以一种很好的方式在Ruby中创建临时目录? 我还想在进程退出时自动删除它。 谢谢!

请参阅tmpdir的文档。 如果为mktmpdir方法提供了一个块,则在块返回时将删除temp 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 

使用stdlib中的Dir.mktmpdir方法