我没有看到FileUtils命令的任何返回值。
我想做点什么:
really=(gets.chomp=="y")
if really
success = FileUtils.rm_rf "./PROJECT_#{@name}" #does not work
end
puts "./PROJECT_#{@name} deleted" if success
我为FileUtils阅读了documentation,还阅读了“Getting executed command from ruby FileUtils”,但我无法弄清楚如何使用答案。
答案 0 :(得分:1)
根据文档(http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-rm_rf),对#rm_rf的调用不会回显与他们正在执行的任务相关的任何内容。 #rm_rf实际上使用选项调用#rm_r:force =>真正。此选项使该方法可以忽略StandardError异常(然后会向您传达有关操作或其无效的原因)。现在,回到它失败的原因。正如有人已经评论过,请尝试选项:secure =>真正。有关此内容的更多信息:http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure。这可能是一个许可问题。
答案 1 :(得分:0)
我认为您需要检查返回值:
irb(main):006:0> FileUtils.rm_rf 'test'
=> ["test"]
irb(main):007:0>
并检查在目录不存在的情况下是否引发异常。
如果您需要返回值,也许您唯一的选择是在ruby中运行命令,请查看this blog post。