Копирование файла из одного каталога в другой с помощью Ruby

Эй, я пытаюсь переместить несколько файлов из одной папки в другую. В строке 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

Ответы

Ответ 1

Что-то вроде этого должно работать.

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

Вы должны указать папку назначения, я не думаю, что вы можете использовать подстановочные знаки.

Ответ 2

* - это подстановочный знак, означающий "любое количество символов", поэтому "****" означает "любое количество любого числа любого числа любого числа символов", что, вероятно, не означает, что вы имеете в виду.

? является правильным символом для "любого символа в этой позиции", поэтому "????" означает "только строка из четырех символов".