在Ruby中怎么获取文件名和扩展名?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (53)

我正在制作一个计划,从网站下载视频,将其转换为MP3并为这些文件创建目录结构。

我的代码是:

FileUtils.cd("#{$musicdir}/#{$folder}") do
  youkuDlhelperLibs::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

第一个转到已经创建的音乐文件夹。里面,我正在执行get。之后,我在目录中有两个文件:“xyz.mp4”和“xyz.m4a”。

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

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

有没有人有其他想法?

提问于
用户回答回答于

可以使用以下功能:

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

comp = File.basename file        # => "xyz.mp4"
extn = File.extname  file        # => ".mp4"
name = File.basename file, extn  # => "xyz"
path = File.dirname  file        # => "/path/to"

扫码关注云+社区