【问题标题】:How to write a file with ruby? [duplicate]如何用 ruby​​ 编写文件? [复制]
【发布时间】:2015-11-04 10:47:00
【问题描述】:

我想创建一个临时文件:

def create_file
  FileUtils.mkdir_p('/var/log/my_app')
  tmp_file = '/var/log/my_app/tmp_file'
  File.open(tmp_file, 'w') do |file|
    file.write 'test'
  end
end

这里我确定/var/log/my_app 路径存在。但是在我运行这个方法之后,我在那个路径下找不到一个名为tmp_file 的文件。 而且也没有任何错误。

【问题讨论】:

  • @saadq 感谢您的回复。我读过那个问题。我不知道我的来源不起作用的原因是什么。

标签: ruby file


【解决方案1】:

我在您的代码中没有看到任何错误。如果您没有收到任何异常,则该文件必须已创建,如果此函数已执行。

我建议你在create_file的最后做一个测试:

if File.file?
    puts "File has been created"
else
    fail "File is not there!"
end

如果您看到“文件已创建”,但该文件仍然丢失,则必须在您有时间检查它是否存在之前已将其删除。如果您看到“文件不存在!”,则表示发生了一些奇怪的事情,我会打电话给驱魔人。如果您没有看到任何消息,则表示您的函数尚未执行。

【讨论】:

    【解决方案2】:

    我认为你会更好地使用 Ruby 的 TempFile 类,甚至可能使用本文建议的 Ruby 的临时目录:Quick tips for doing IO with Ruby

    我想你会发现这篇文章很有帮助。我相信这将使您的方法更容易 - 特别是在您完成文件后删除文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      相关资源
      最近更新 更多