文件扩展相关的操作

时间:2014-01-18 10:40:42

标签: ruby file directory

我想检查一个目录是否有“.ogg”或“.m4a”文件。在每种情况下,dir在开始下载会话之前都是空的。所以它只能有一个“ogg”或一个“m4a”文件。

我试用了这段代码来获取文件名:

def self.get_filename
    if File.exists?('*.ogg')
      file = Dir.glob('*.ogg')
      @testfile = file[0]
      @filename = File.basename(@testfile,File.extname(@testfile))
    end
    if File.exists?('*.m4a')
      file = Dir.glob('*.m4a')
      @testfile = file[0]
      @filename = File.basename(@testfile,File.extname(@testfile))
    end
  end

可悲的是,文件名实际上是空的。也许有人知道为什么?

2 个答案:

答案 0 :(得分:1)

File#exists?不支持正则表达式。

您可以这样做:

if Dir["*.rb"].any?
  #....

答案 1 :(得分:1)

我认为您需要Dir.glob

Dir.glob('/path/to/dir/*.ogg') do |ogg_file|
  @testfile = ogg_file
  @filename = File.basename(@testfile,File.extname(@testfile))
end