我想编写一个简单的程序,通过一个给定的目录进行递归,如果在完整路径和文件名中找到一组排除的目录/字符串,或者文件不存在/是空的并且列出其余的,以及文件大小和创建时间。
我的尝试看起来像这样,但它不起作用:
dir_ignore=[".AppleDouble",".AppleDB",".AppleDesktop",".DS_Store"]
require 'find'
Find.find('/Volumes/Downloads') { |dir_entry|
next if dir_ignore.any? {|skip| dir_entry.include? skip} || !File.exist?(dir_entry)
dir = ["filename" => dir_entry],["filesize" => File.size(dir_entry)],["creationdate" => File.ctime(dir_entry)]
puts dir
}
程序仍会列出" .AppleDouble"中的所有文件。目录,最后在不存在的文件上崩溃。显然我的布尔表达式不起作用......
为什么?