小编Mai*_*sen的帖子

RUBY - 如果文件不存在,如何将文件复制到特定目录

我认为这是一个非常简单的问题,但我被困住了。

我正在尝试编写一个脚本来查找第一个目录,然后检查第二个目录以查看是否有匹配的文件。如果文件匹配,我需要将文件从第二个目录复制到第三个目录,前提是它们尚不存在于第三个目录中。

这是我迄今为止所拥有的内容的副本。该代码仍然会覆盖第三个目录中的文件,即使它们已经存在。我究竟做错了什么?

谢谢!

#!/usr/bin/ruby

require 'FileUtils'

library_path_1 = ARGV[0]
library_path_2 = ARGV[1]
library_path_3 = ARGV[2]

dir_1 = Dir.glob(library_path_1 + "/**/*").select{ |x| File.file? x }
dir_2 = Dir.glob(library_path_2 + "/**/*").select{ |x| File.file? x }
destination = Dir.glob(library_path_3 + "/**/*").select{ |x| File.file? x }

dir_1.each do |filename|
  dir_2.each do |path|
    destination.each do |existing_file|

      existing_file = File.basename(existing_file)

      if path.include?(File.basename(filename))
        FileUtils.cp(path, library_path_3) unless File.exists?(existing_file)
      end

    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby scripting copy file

5
推荐指数
1
解决办法
3180
查看次数

标签 统计

copy ×1

file ×1

ruby ×1

scripting ×1