當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Tempfile.new用法及代碼示例

本文簡要介紹ruby語言中 Tempfile.new 的用法。

用法

new(basename="", tmpdir=nil, mode: 0, **options)

創建一個權限為 0600 的臨時文件(= 隻有所有者可讀和可寫)並以 “w+” 模式打開它。

建議盡可能使用 Tempfile.create { ... } 代替,因為該方法避免了委托成本,並且不依賴終結器來關閉和取消鏈接文件,這是不可靠的。

basename 參數用於確定臨時文件的名稱。您可以傳遞帶有 2 個 String 元素的 String Array 。在前一種形式中,臨時文件的基本名稱將以給定的字符串開頭。在後一種形式中,臨時文件的基本名稱將從數組的第一個元素開始,到第二個元素結束。例如:

file = Tempfile.new('hello')
file.path  # => something like: "/tmp/hello2843-8392-92849382--0"

# Use the Array form to enforce an extension in the filename:
file = Tempfile.new(['hello', '.jpg'])
file.path  # => something like: "/tmp/hello2843-8392-92849382--0.jpg"

臨時文件將放置在tmpdir 參數指定的目錄中。默認情況下,這是 Dir.tmpdir

file = Tempfile.new('hello', '/home/aisaka')
file.path  # => something like: "/home/aisaka/hello2843-8392-92849382--0"

您還可以傳遞選項哈希。在後台, Tempfile 使用 File.open 創建臨時文件。這些選項將傳遞給 File.open 。這對於指定編碼選項非常有用,例如:

Tempfile.new('hello', '/home/aisaka', encoding: 'ascii-8bit')

# You can also omit the 'tmpdir' parameter:
Tempfile.new('hello', encoding: 'ascii-8bit')

注意:mode 關鍵字參數,由 Tempfile 接受,隻能是數字,是 File::Constants 中定義的模式的組合。

異常

如果 Tempfile.new 在有限的嘗試次數內無法找到唯一的文件名,則會引發異常。

調用超類方法

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Tempfile.new。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。