如果文件不存在,则从存储在array方法中的路径值中删除文件失败

时间:2016-01-21 09:44:06

标签: ruby ruby-on-rails-4

我有一个动态生成的文件路径数组,如下所示:

paths = ["/lib/my_folder/foo", "/lib/my_folder/bar", "/lib/my_folder/baz", ...]

所以我想这样做:

for path in paths do |path|
  File.delete(path) #if file exists
end

这是失败的,因为有时数组中的元素指向不再存在的文件。

我试过了:

for path in paths
  if !path.blank?
    File.delete(path)
  end
end

但仍然失败并出现No such file or directory...错误信息。

如何编写一个循环来删除数组中剩余的元素而不会失败?

1 个答案:

答案 0 :(得分:4)

paths.each { |path| File.delete(path) if File.exists?(path) }