Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > tempfileライブラリ > Tempfileクラス > create

singleton method Tempfile.create

create(basename="", tmpdir=nil, mode: 0, **options) -> File[permalink][rdoc]
create(basename="", tmpdir=nil, mode: 0, **options) {|fp| ...} -> object

テンポラリファイルを作成し、それを表す File オブジェクトを生成して返します(Tempfileではありません)。 createはopenに似ていますが、finalizerによるファイルの自動unlinkを行いません。

ブロックを指定しなかった場合、tmpdirにファイルを作り、Fileオブジェクトを返します。このファイルは自動的に削除されません。ファイルを削除する場合は明示的にunlinkすべきです。

ブロックを指定して呼び出した場合、tmpdirにファイルを作り、 Fileオブジェクトを引数としてブロックを呼び出します。ブロック終了時にファイルをクローズするのはopenと同じですが、 createではファイルのunlinkも自動で行います。

[PARAM] basename:
ファイル名のプレフィクスを文字列で指定します。文字列の配列を指定した場合、先頭の要素がファイル名のプレフィックス、次の要素がサフィックスとして使われます。
[PARAM] tmpdir:
ファイルが作られるディレクトリです。このデフォルト値は、Dir.tmpdir の値となります。
[PARAM] mode:
ファイルのモードを定数の論理和で指定します。IO.open と同じ(Kernel.#openと同じ)ものが指定できます。
[PARAM] options:
ファイルのオプション引数を指定します。IO.open と同じものが指定できます。ただし、:permオプションは無視されます。

[SEE_ALSO] Tempfile.open

例:

require "tempfile"
GC.disable
path = ""
Tempfile.create("foo") do |f|
  path = f.path
  p File.exist?(path) #=> true
end
p File.exist?(path) #=> false