Ast*_*en2 6 ruby temporary-files
我目前正在 Ruby 上运行此代码。
file = Tempfile.new(['tempemail', '.html'])
file << email # Email is a Ruby String (not nil)
Launchy.open(file.path)
Run Code Online (Sandbox Code Playgroud)
Launchy 抱怨该文件不存在。我已经运行 cat 并确认了这一点。有没有办法强制 Ruby 将 Tempfile 保存到磁盘?
编辑:
我做了一项额外的测试。我在 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'
Run Code Online (Sandbox Code Playgroud)
如果没有,file.close你会得到一个空字符串。
如果继续将数据写入文件,close您也可以使用:flush
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)
Run Code Online (Sandbox Code Playgroud)