1. ホーム
  2. ruby

[解決済み] Rubyでファイルをあるディレクトリから別のディレクトリにコピーする

2022-02-01 20:22:03

質問

複数のファイルをあるフォルダから別のフォルダに移動させようとしています。FileUtilsの行で、移動先のフォルダー内の4文字のフォルダーをすべて検索し、ファイルと同じベースネームのフォルダーにファイルを貼り付けようとしています。

#!/usr/bin/env ruby

require 'fileutils'

my_dir = Dir["C:/Documents and Settings/user/Desktop/originalfiles/*.doc"]
my_dir.each do |filename| 
  FileUtils.cp(filename, "C:/Documents and Settings/user/Desktop/destinationfolder/****/" + File.basename(filename, ".doc"))
end

解決方法は?

このようにすればうまくいくはずです。

my_dir = Dir["C:/Documents and Settings/user/Desktop/originalfiles/*.doc"]
my_dir.each do |filename|
  name = File.basename('filename', '.doc')[0,4]
  dest_folder = "C:/Documents and Settings/user/Desktop/destinationfolder/#{name}/"
  FileUtils.cp(filename, dest_folder)
end

実際に保存先フォルダを指定する必要があり、ワイルドカードは使えないと思います。