ruby 临时目录中的临时文件

use*_*381 5 ruby-on-rails

我想在临时目录中创建临时文件。下面是我的代码。

           require 'tmpdir'
           require 'tempfile'
           Dir.mktmpdir do |dir|
             Dir.chdir(dir)
             TemFile.new("f")
             sleep 20
           end
Run Code Online (Sandbox Code Playgroud)

它给了我这个例外: Errno::EACCES: Permission denied - C:/Users/SANJAY~1/AppData/Local/Temp/d20130724-5600-ka2ame,因为 ruby​​ 正在尝试删除一个非空的临时目录。

请帮我在临时目录中创建一个临时文件。

mes*_*nio -1

您应该使用Tempfile类。

require 'tempfile'

file = Tempfile.new('foo')
file.path      # => A unique filename in the OS's temp directory,
               #    e.g.: "/tmp/foo.24722.0"
               #    This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read      # => "hello world"
file.close
file.unlink    # deletes the temp file
Run Code Online (Sandbox Code Playgroud)

要创建临时文件夹,您可以使用Dir.mktmpdir

  • 这个答案没有回答问题。他要求在临时文件夹内创建一个临时文件。也不要给出链接作为答案。如果 ruby​​-doc 的地址发生变化怎么办? (4认同)