Я работаю над программой для загрузки видео с 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».
Я хотел бы получить имя файла без расширения, чтобы обрабатывать оба файла по-разному.
Я использую массив, но массив всего на одно совпадение для меня звучит безумно.
Есть у кого-нибудь еще идея?
$globals
как вы. Это очень сильный намек на то, что вы не понимаете область видимости переменных и полагаетесь на глобальные переменные, чтобы «обмануть». Они являются запахом кода и ведут к несчастью и боли.rip.to_s
иrip.split
ничего не делать.Ответы:
Для своих целей вы можете использовать следующие функции:
источник
extn
это строка".mp4"
или даже строка".*"
.