验证目录的输入

时间:2011-10-26 18:11:45

标签: ruby validation

他们的输入应该是c:\ folder \ subfolder \ format中的目录。此外,我不希望它尝试运行,除非该目录包含.flv文件。所以它需要存在并包含.flv文件。否则它应该要求用户输入另一个目录。

代码还会清除斜杠,并添加一个尾部斜杠,这是程序其他部分所需要的。当给定一个存在并包含.flv文件的目录时,我的工作原理,但如果它不包含.flv文件,它只是结束程序而不是要求额外的输入;这意味着只要目录存在就行,即使它没有任何.flv文件。

def is_valid_dir()
    input = "nil"
    until File.directory?(input) && Dir.glob("#{input}*.flv")
        puts "Enter the full directory path of the flv files."
        input = gets.chomp
        if input[-1..-1] == '/'
            # Do nothing if it already 
            # ends with a forward slash.
        else
            input += '/'
        end 
    end
    input.gsub!('\\', '/')
return input
end

1 个答案:

答案 0 :(得分:1)

如果没有匹配项,

Dir.glob将返回一个空数组;检查它的长度。

另外,你说输入应该是反斜杠,但是正在检查正斜杠。除此之外,惯用你可能会写为:

input += '/' unless input[-1..1] == '/'