如何使用Ruby删除文件夹内容?

时间:2013-01-10 08:44:42

标签: ruby ruby-1.9.3

假设我有一张Excel表格,其中有一些数字表示:

  • 77787
  • 45877
  • 78985等......

现在我在Windows 7机器中有一个名为“D:// Filehosting”的目录。在该目录下,我有大约500个文件夹,每个文件夹中有120个文件。现在我想删除每个文件夹的内容,这些内容距离当前日期还有2个月。现在文件夹的排列如下:

  • d:// Filehosting / Document77787
  • D:// Filehosting / Document45877 ..等等

脚本应该采用上面提到的数字,并相应地找到正确的目录并相应地删除内容。在内容删除方法之前,必须检查文件夹是否存在。 < / em>的

可以使用Ruby完成吗?

1 个答案:

答案 0 :(得分:3)

  def del_dir id
    Dir["D:/Filehosting/Document#{id}/*"].each do |fname|
      next unless File.file?(fname)                # skip accident dirs
      if Time.now-File.mtime(fname) > 2*30*24*3600 # nearly 2 months
        puts "[!] will delete #{fname}, mtime=#{File.mtime(fname)}"
        # File.unlink(fname)                       # uncomment this to actually delete
      end
    end
  end