我正在开发一个程序,用于从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”。
我想获取不带扩展名的文件名,这样我就可以以不同的方式处理这两个文件。
我使用的是数组,但只有一个匹配的数组对我来说听起来很疯狂。
还有人有别的主意吗?
发布于 2013-12-27 08:52:58
您可以使用以下函数来实现您的目的:
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"
https://stackoverflow.com/questions/20793180
复制相似问题