Techioz Blog

RubyでTempfileのパスを設定する方法

概要

Tempfile オブジェクトに変換したいファイルがいくつかあります。

Tempfile.new(path) のようなことを行う方法はありますか?

私が尋ねている理由は、単一の Tempfile から複数のファイルを作成する ImageMagick コマンドを実行しようとしているからです。残念ながら、新しく作成されたファイルはガベージ コレクションされません…

ありがとう!

解決策

ちょっと何か思いついたんです。新しいファイルを一時ファイルにダンプする代わりに、上書きするだけです。

tempfile = Tempfile.new('foo')
tempfile.close
FileUtils.mv path, tempfile.path
tempfile.open