方法删除Ruby中的所有文件

方法删除Ruby中的所有文件,ruby,Ruby,我可能会在这之后踢自己,但我已经在cucumber应用程序中创建了一个方法,该方法将删除目录中的所有文件,但它似乎不会执行,因为运行它后文件仍然存在,尽管如果我跳入控制台并一步一步地运行命令,它会工作 当调用方法本身时,有没有任何原因说明这不起作用 def clean_reports js_error_path = File.join(File.dirname(__FILE__), '/report/js_errors') screenshot_path = File.join(File

我可能会在这之后踢自己,但我已经在cucumber应用程序中创建了一个方法,该方法将删除目录中的所有文件,但它似乎不会执行,因为运行它后文件仍然存在,尽管如果我跳入控制台并一步一步地运行命令,它会工作

当调用方法本身时,有没有任何原因说明这不起作用

def clean_reports
  js_error_path = File.join(File.dirname(__FILE__), '/report/js_errors')
  screenshot_path = File.join(File.dirname(__FILE__), '/report/screenshots')
  FileUtils.rm_rf(Dir.glob(js_error_path + '/*'))
  FileUtils.rm_rf(Dir.glob(screenshot_path + '/*'))
end
如果我能只调用一次
FileUtils.rm\u rf
,那会很方便吗?这可能吗

我的目录结构是这样的

-cucumber_tests
  -report
   -js_errors
     (files)
   -screenshots
     (files)

谢谢

下面这句话会有帮助

FileUtils.rm_rf(Dir['./report/js_errors', './report/screenshots']) 

将“#{js_error_path}”
放在分配之后-给你什么?顺便说一句,
Dir
接受枚举符号:
Dir['report/{js_errors,screenshots}/***']
.puts输出。/report/js_errors'
nil
?这实际上是不可能的,因为
File.join
是一个支持字符串的连接函数。无论如何,在您的环境中,
File.dirname\uuuu File\uuuuu
可能与您在控制台中得到的有一定差异。抱歉,我的错误,已经编辑了我以前的评论,因此我是否需要使用与
File.dirname\uu File\uuuu不同的内容?我不想硬编码路径,因为根目录的位置可能位于其他人机器上不同的位置
Dir['./report/{js_errors,screenshots}]
看起来更漂亮。谢谢这两个,非常有帮助