ruby - 从目录中获取某些扩展名的文件(windows)

时间:2016-10-06 01:58:12

标签: ruby

我在使用以下代码时遇到问题,其中用户输入目录名称来获取windows计算机上特定扩展名的文件列表

puts "Enter the name of directory where files exist : "
directory = gets.chomp
csv_files = Dir.glob("#{directory}/*.csv")

无论目录输入(目录有.csv文件),最后一行都返回一个空数组。

ruby​​版本 - ruby 2.0.0p598 (2014-11-13) [i386-mingw32]

在评论中添加其他信息

PS C:\test> irb
irb(main):001:0> directory = gets.chomp
C:\test
=> "C:\\test"
irb(main):002:0> directory
=> "C:\\test"
irb(main):003:0> Dir.glob("#{directory}/*.csv")
=> []

irb(main):004:0> Dir.glob("#{directory}/*.*")
=> []

irb(main):005:0> Dir.glob("C:/" + directory + "/*.csv")
=> []

irb(main):006:0> Dir.glob("C:/test/*")
=> ["C:/test/test_csv.csv"]

irb(main):007:0> Dir.entries(directory)
=> [".", "..","test_csv.csv"]

irb(main):010:0> Dir.glob('./*.csv')
=> ["./test_csv.csv"]
irb(main):011:0>

1 个答案:

答案 0 :(得分:0)

找到解决方案如下。

使用File.expand_path方法将输入字符串转换为标准的ruby文件路径。

puts "Enter the name of directory where files exist : "
directory = File.expand_path(gets.chomp)
csv_files = Dir.glob("#{directory}/*.csv")