gpt4 book ai didi

Ruby Tempfile 不在磁盘上创建文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:48:45 26 4
gpt4 key购买 nike

我目前正在 Ruby 上运行这段代码。

file = Tempfile.new(['tempemail', '.html'])
file << email # Email is a Ruby String (not nil)

Launchy.open(file.path)

Launchy 提示文件不存在。我已经运行 cat 并确认了这一点。有什么方法可以强制 Ruby 将临时文件保存到磁盘吗?

编辑:

我已经完成了一项额外的测试。我在 Launchy.open 之前添加了一个 file.rewind 和 file.read。文件成功包含邮件内容。

最佳答案

你能试试file.close吗。

没有 Launchy 的测试:

require 'tempfile'
file = Tempfile.new(['tempemail', '.html'])
file << 'xx' # Email is a Ruby String (not nil)

file.close #<- This is needed

p File.read(file.path) # -> 'xx'

如果没有 file.close,您将得到一个空字符串。

如果您继续将数据写入文件,您也可以使用 flush 而不是 close:

require 'tempfile'
file = Tempfile.new(['tempemail', '.html'])
file << "xx\n" # Email is a Ruby String (not nil)

p file.path
file.flush

file << "yy\n" # Email is a Ruby String (not nil)
file.flush

p File.read(file.path)

关于Ruby Tempfile 不在磁盘上创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com