Je travaille sur un programme pour télécharger une vidéo de YouTube, la convertir en MP3 et créer une structure de répertoires pour les fichiers.
Mon code est:
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
Le premier va dans le dossier de musique déjà créé. À l'intérieur, j'exécute get
. Après cela, j'ai deux fichiers dans le répertoire: "xyz.mp4" et "xyz.m4a".
Je voudrais récupérer le nom de fichier sans l'extension afin de pouvoir gérer les deux fichiers différemment.
J'utilise un tableau, mais un tableau pour une seule correspondance me semble fou.
Quelqu'un a-t-il une autre idée?
$globals
comme vous l'êtes. Ils sont un indice très fort que vous ne comprenez pas la portée des variables et que vous vous fiez aux globaux pour "tricher". Ils sont une odeur de code et conduisent à la misère et à la douleur.rip.to_s
etrip.split
ne rien faire.Réponses:
Vous pouvez utiliser les fonctions suivantes à vos fins:
la source
extn
c'est la chaîne".mp4"
ou même la chaîne".*"
.