从txt文件中读取路径并使用ruby将这些文件复制到新目录

时间:2015-12-03 09:47:16

标签: ruby

实际上我正在使用此代码查找文件中的路径:

files_to_read = Dir['This/is/a_path/.sln']
files_to_read.each do |file_name|

  array = []

  # regex for the line where the source path is stored
  regex = /(\.\.\\[^"]+)/
  File.open(file_name) do |f|
    f.each_line do |line|
      regex.match(line) do |matches|
        array << matches[1]
        File.open("This/is/a_path/tmp.txt", 'w+') {|f| f.write array.join("\n")}
         end
      end
    end
  end
end

到目前为止还可以,我在tmp.txt中得到了这个结果:

tmp.txt:

..\..\..\Project\Source\sourceA.c
..\..\..\Project\Source\ModuleB\sourceB.c

现在我想将这些c源复制到另一个目录“destination_dir”。像这样的东西(作为“伪代码”):

File.open("This/is/a_path/tmp.txt", 'r') do |f|
   f.each_line FileUtils.cp(<the_c_sources>, "destination_dir")

知道如何用ruby做到这一点吗?

1 个答案:

答案 0 :(得分:3)

我不确定我是否遵循了这个问题,但你的意思是

tmp_file = File.read "This/is/a_path/tmp.txt"
tmp_file.lines.each do |file_name|
  FileUtils.cp(file_name, "destination_dir")
end