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

我正在制作一个程序,从YouTube下载video,将其转换为MP3,并为这些文件创build一个目录结构。

我的代码是:

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 

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

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

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

有没有其他人的想法?

您可以使用以下function来达到您的目的:

 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"