1. ホーム
  2. ruby

[解決済み] Rubyでファイル名と拡張子を取得する

2022-04-27 08:31:21

質問

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" という2つのファイルができました。

拡張子なしでファイル名を取得し、両方のファイルを異なる方法で処理したいのですが。

配列を使っていますが、1つのマッチのために配列を使うのは、私にはクレイジーに聞こえます。

どなたか別のアイデアをお持ちですか?

解決方法は?

目的に応じて、以下の機能をご利用いただけます。

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

File.basename(path)         # => "xyz.mp4"
File.extname(path)          # => ".mp4"
File.basename(path, ".mp4") # => "xyz"
File.basename(path, ".*")   # => "xyz"
File.dirname(path)          # => "/path/to"