2013-07-24 94 views
4

我想在臨時目錄內創建臨時文件。下面是我的代碼。ruby​​臨時目錄內的臨時文件

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

它給我這樣的例外:errno的:: EACCES:權限被拒絕 - C:/用戶/ SANJAY〜1 /應用程序數據/本地/溫度/ d20130724-5600-ka2ame,因爲紅寶石試圖刪除臨時目錄,這不是empty.plz幫助我在臨時目錄內創建一個臨時文件。

回答

-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 

要創建臨時文件夾,您可以使用Dir.mktmpdir

+0

假設我想在臨時目錄名'testing'內創建'foo'臨時文件,並且這個'testing'目錄應該在請求或會話(irb seesion)過期後自動刪除。您將如何執行此操作? – user2534381

+0

使用[Dir.mktmpdir](http://ruby-doc.org/stdlib-1.9.3/libdoc/tmpdir/rdoc/Dir.html#method-c-mktmpdir)創建臨時文件夾。你可以看到這些問題'[如何在Ruby中創建臨時目錄?](http://stackoverflow.com/questions/6841660/how-to-create-temp-dir-in-ruby)'和'[什麼是在Ruby on Rails中獲得一個空的臨時目錄的最佳方式是什麼?](http://stackoverflow.com/questions/1139265/what-is-the-best-way-to-get-an-empty-temporary-directory-in -ruby-上軌)」。 –

+1

這個答案不回答這個問題。他要求在臨時文件夾內創建一個臨時文件。也不要給鏈接作爲答案。如果ruby-doc更改地址會怎麼樣? – sidney