如何用ruby写一个文件?

时间:2015-08-12 01:59:09

标签: ruby file

我想创建一个临时文件:

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的文件。 而且也没有任何错误。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

我建议您在 create_file 结束时进行测试:

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

如果您看到"文件已创建",但该文件仍然缺失,则必须先删除它,然后才能检查其存在。如果你看到"文件不存在!",有些奇怪的事情正在发生,我会称之为驱魔人。如果您没有看到任何消息,则表示您的功能尚未执行。