在Ruby中获取文件名和扩展名

Sas*_*nns 110 ruby file

我正在开发一个从YouTube下载视频,将其转换为MP3并为文件创建目录结构的程序.

我的代码是:

FileUtils.cd("#{$musicdir}/#{$folder}") do
  YoutubeDlhelperLibs::Downloader.get($url)
  if File.exists?('*.mp4')
    puts 'Remove unneeded tempfile'
    Dir['*.mp4'].each do |waste|
      File.delete(waste)
    end
  else
    puts 'Temporary file already deleted'
  end

  Dir['*.m4a'].each do |rip|
    rip.to_s
    rip.split
    puts 'Inside the function'
    puts rip
  end

end
Run Code Online (Sandbox Code Playgroud)

第一个进入已创建的音乐文件夹.在里面,我正在执行get.之后我在目录中有两个文件:"xyz.mp4"和"xyz.m4a".

我想获取没有扩展名的文件名,所以我可以用不同的方式处理这两个文件.

我正在使用一个数组,但只有一个匹配的数组对我来说听起来很疯狂.

有没有人有其他想法?

Sto*_*oic 272

您可以使用以下功能:

path = "/path/to/xyz.mp4"

File.basename(path)         # => "xyz.mp4"
File.extname(path)          # => ".mp4"
File.basename(path, ".mp4") # => "xyz"
File.basename(path, ".*")   # => "xyz"
File.dirname(path)          # => "/path/to"
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`extn`是字符串`".mp4"`[甚至字符串`".*"`](http://phrogz.net/filename-without-extension-ruby). (15认同)
  • 到目前为止,我至少有 60 次想亲吻写这篇文章的人 (4认同)