遍历文件夹并返回完整文件路径

时间:2013-12-01 15:36:11

标签: ruby

我写了这段代码:

verz = 'C:\Users\GerdPC\Desktop\mouth'

Dir.foreach(verz) do |f|
 next if f == '.' or f == '..' 
 puts f
end

我的问题是我不知道如何返回文件名f,例如:

sumba.png

可是:

C:\Users\GerdPC\Desktop\mouth\sumba.png

所以我试过了:

 puts File.expand_path(f)

但是这只会扩展我的程序运行目录的文件名!我该怎么办?

2 个答案:

答案 0 :(得分:3)

我会使用File::realdirpath执行以下操作:

Dir.pwd # => "/home/kirti/Ruby"

Dir.foreach(Dir.pwd) do |file|
  puts File.realdirpath(file) unless ['.','..'].include? file
end

# >> /home/kirti/Ruby/tut.html
# >> /home/kirti/Ruby/test
#.........
#.........

答案 1 :(得分:2)

这不够吗?

puts "#{verz}\\#{f}"