我正在使用
Find.find("c:\\test")
搜索目录中的文件。我只是想在这个级别搜索目录,所以c:\ test中的任何目录都不会被搜索。
我可以使用其他方法吗?
由于
答案 0 :(得分:4)
# Temporarily make c:\test your current directory
Dir.chdir('c:/test') do
# Get a list of file names just in this directory as an array of strings
Dir['*'].each do |filename|
# ...
end
end
可替换地:
# Get a list of paths like "c:/test/foo.txt"
Dir['c:/test/*'] do |absolute|
# Get just the filename, e.g. "foo.txt"
filename = File.basename(absolute)
# ...
end
如果您愿意,可以将文件名只包含在数组中:
files = Dir.chdir('c:/text'){ Dir['*'] }
files = Dir['c:/text/*'].map{ |f| File.basename(f) }
答案 1 :(得分:3)
Find
的{{1}}方法允许您跳过当前文件或目录:
跳过当前文件或目录, 用下一个重启循环 条目。如果当前文件是 目录,该目录不会 递归输入。只有意义 在与之关联的块内 查找::找到。
prune
答案 2 :(得分:0)
例如,您可以使用Dir.foreach()
列出c:\ test
Dir.foreach("c:\\test") {|x| puts "#{x}" }