Подтвердить что ты не робот

Получить имя и расширение файла в Ruby

Я работаю над программой для загрузки видео с 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".

Я хотел бы получить имя файла без расширения, чтобы я мог обрабатывать оба файла по-разному.

Я использую массив, но массив для одного совпадения звучит для меня сумасшедшим.

Есть ли еще одна идея?

4b9b3361

Ответ 1

Вы можете использовать следующие функции для вашей цели:

file = "/path/to/xyz.mp4"

comp = File.basename file        # => "xyz.mp4"
extn = File.extname  file        # => ".mp4"
name = File.basename file, extn  # => "xyz"
path = File.dirname  file        # => "/path/to"