Ich arbeite an einem Programm, um ein Video von YouTube herunterzuladen, es in MP3 zu konvertieren und eine Verzeichnisstruktur für die Dateien zu erstellen.
Mein Code lautet:
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
Der erste geht in den bereits erstellten Musikordner. Darin führe ich aus get
. Danach habe ich zwei Dateien im Verzeichnis: "xyz.mp4" und "xyz.m4a".
Ich möchte den Dateinamen ohne die Erweiterung abrufen, damit ich beide Dateien unterschiedlich behandeln kann.
Ich verwende ein Array, aber ein Array für nur ein Match klingt für mich verrückt.
Hat jemand eine andere Idee?
$globals
wie du bist. Sie sind ein sehr starker Hinweis darauf, dass Sie das variable Scoping nicht verstehen und sich beim "Betrügen" auf Globale verlassen. Sie riechen nach Code und führen zu Elend und Schmerz.rip.to_s
undrip.split
nichts tun.Antworten:
Sie können die folgenden Funktionen für Ihren Zweck verwenden:
quelle
extn
die Zeichenfolge".mp4"
oder sogar die Zeichenfolge ist".*"
.