ちょっと私は1つのフォルダーから別のフォルダーに複数のファイルを移動しようとしています。 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
実際に宛先フォルダを指定する必要があります。ワイルドカードを使用できるとは思いません。
*
は「任意の数の文字」を意味するワイルドカードなので、「****
"は、「任意の数の任意の数の任意の数の任意の数の文字」を意味します。
?
は「この位置の任意の文字」の適切なシンボルです。したがって、「????
"は、「4文字のみの文字列」を意味します。