【问题标题】:How can I copy files with the directory structure?如何复制具有目录结构的文件?
【发布时间】:2012-01-11 21:20:01
【问题描述】:

有没有办法可以复制具有目录结构的文件?

这是我所拥有的:

  files = FileList.new()
  files.include("#{HOST_DIR}/**/bin/*.dll")
  files.include("#{HOST_DIR}/**/bin/*.pdb")
  files.include("#{HOST_DIR}/**/bin/*.xml")
  files.include("#{HOST_DIR}/**/bin/**/*.xml")
  files.include("#{HOST_DIR}/**/TestData/*.*")
  FileUtils.cp(files,'c:/temp',:verbose => true)    

它将所有文件复制到一个文件夹c:/temp。我希望文件保持#{HOST_DIR}中的目录结构。

更新

我有一个解决方案:

 files.each do |file|
    target = file.sub(SERVICEHOST_DIR,'c:/temp')
    FileUtils.mkdir_p(File.dirname(target))    
    FileUtils.cp_r(file,target,:verbose => true)
  end

还有更好的吗?

【问题讨论】:

    标签: ruby copy rake


    【解决方案1】:

    我认为FileUtils#cp_r 应该可以解决问题。

    dest = 'c:/temp'
    
    files = Dir.chdir(HOST_DIR) do
      Dir.glob %w' **/bin/*.dll
                   **/bin/*.pdb
                   **/bin/*.xml
                   **/bin/**/*.xml
                   **/TestData/*.*
                 '
    end
    
    FileUtils.cp_r files, dest, :verbose => true
    

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 2017-04-11
      相关资源
      最近更新 更多