当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。