我在使用以下代码时遇到问题,其中用户输入目录名称来获取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>
答案 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")