Saya sedang mengerjakan sebuah program untuk mendownload video dari YouTube, mengubahnya menjadi MP3 dan membuat struktur direktori untuk file tersebut.
Kode saya adalah:
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
Yang pertama masuk ke folder musik yang sudah dibuat. Di dalam yang saya jalankan get
. Setelah itu saya memiliki dua file di direktori: "xyz.mp4" dan "xyz.m4a".
Saya ingin mengambil nama file tanpa ekstensi sehingga saya dapat menangani kedua file secara berbeda.
Saya menggunakan array, tetapi array hanya untuk satu pertandingan terdengar gila bagi saya.
Adakah yang punya ide lain?
$globals
seperti Anda. Mereka adalah petunjuk yang sangat kuat bahwa Anda tidak memahami pelingkupan variabel dan mengandalkan global untuk "curang". Mereka berbau kode dan menyebabkan kesengsaraan dan rasa sakit.rip.to_s
danrip.split
tidak melakukan apa-apa.Jawaban:
Anda dapat menggunakan fungsi berikut untuk tujuan Anda:
sumber
extn
string".mp4"
atau bahkan string".*"
.