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

我正在编写一个程序,从 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

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

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

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

还有别的办法吗?

113648 次浏览

你可使用以下功能:

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"