`
CharlesCui
  • 浏览: 431214 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《无处不Ruby》系列之批量复制目录到指定文件夹

阅读更多
Attention:tar为目标路径,指src下面的目录结构将被复制到的地方
The Goal:在指定目录下创建和当前目录一样的文档结构,可以选择复制子目录结构或者不复制子目录结构。

require 'rubygems'
require 'ruby-debug' 
require "find"

module Cz_dirtools

  def mkdirs_to(tar,src=Dir.getwd)
    #debugger
    if tar.class==NilClass then
      puts "PLZ input target directory name..."
      return 
    elsif !FileTest.directory?(tar)#如果tar不是一个目录
      puts ("Creating #{File.expand_path(tar)}")
      Dir.mkdir("#{File.expand_path(tar)}")#创建tar目录
    end
    
    src=if FileTest.directory?(src) then
      src#如果src是一个目录名,则返回自身
      else
        File.dirname(src)#如果src为一个文件名,则返回该文件所在目录
      end
  #Dir.foreach可以复制目标路径第一层目录结构而不复制子目录
    #~ Dir.foreach(src) do |dir|
      #~ if FileTest.directory?(dir)  && dir!=tar && dir!='..' &&dir!='.' then #忽略自身,忽略上级目录"..",忽略本级目录"."
        #~ #puts dir
        #~ begin
        #~ Dir.mkdir("#{File.expand_path(tar)}/#{dir}")
        #~ rescue#如果该目录已存在则直接跳过否则创建该目录
        #~ end        
      #~ end
    #~ end
  #Find.find可以复制目标路径的完整目录结构,包括子目录
    dirs=Array.new
    Find.find(src) do |dir|
      unless !FileTest.directory?(dir)  || File.basename(dir)==tar || File.basename(dir)=='..' || File.basename(dir)=='.' || File.basename(dir)==File.basename(src)#忽略自身,忽略上级目录"..",忽略本级目录"."
        dirs<<dir
      end
    end
    #puts dirs
    dirs.each do |dir|
        begin
        Dir.mkdir("#{File.expand_path(tar)}/#{dir.gsub(src,'')}")
        rescue#如果该目录已存在则直接跳过否则创建该目录    
        end
    end
  end

end
分享到:
评论
2 楼 CharlesCui 2008-03-24  
不是说了无处不Ruby么?
1 楼 qubic 2008-03-24  
可以写成批处理或者shell嘛,更简单

相关推荐

    ruby-debug-1.87.rar

    在开发过程中,调试是必不可少的一环,而`ruby-debug-1.87`就是Ruby社区中广泛使用的调试工具之一。本文将深入探讨`ruby-debug-1.87`的功能、安装与使用方法,以及它依赖的几个关键组件。 `ruby-debug-1.87`是一个...

    显示所有文件和文件夹,让病毒文件无处隐藏

    电脑中毒后很多隐藏文件不能看到,影响杀毒,通过文件夹选项处理后总是被恶意修改回来,很让人恼火。我们知道病毒怎么实现隐藏功能后就能解决这个问题。下面我提供我的解决方案。 第一步: 解压文件 第二步: 在...

    文件和文件夹彻底粉碎机新

    标题中的“文件和文件夹彻底粉碎机新”指的是一个软件工具,它的主要功能是安全、彻底地删除文件和文件夹,使得数据无法被恢复。在IT领域,这种工具通常被称为数据销毁工具,它们用于处理敏感信息,确保这些信息在被...

    1号店:从B2C走到O2O立体化 无处不超市.docx

    【1号店:从B2C走到O2O立体化 无处不超市】 1号店,这家曾经的B2C(Business-to-Consumer)在线零售商,逐步转型为O2O(Online-to-Offline)模式,实现了从线上到线下的立体化发展。O2O模式的核心在于将线上平台与...

    OD插件-无处安放的魅力去后门版

    一万三的OD插件无处安放的魅力释放(远控)的解决办法 这次我直接发一个去后门的成品吧 也就不多介绍了 无处安放的魅力去后门版!

    局域网IP扫描工具 无处藏身

    《局域网IP扫描工具:无处藏身的网络智慧》 在当今信息化社会,局域网(LAN)已经成为企业、机构甚至家庭网络的核心部分。无论是为了管理内部网络资源,还是确保网络安全,了解并掌握局域网内的IP地址分布至关重要...

    无处藏身

    支持剪切板操作,如果你有想查的IP了,只需把它用鼠标选中,点“复制”或按CTRL+C,本软件会自动进行搜索,免去了“粘贴”的麻烦。软件起动后,会自动停靠在屏幕最上放,并可自动隐藏,完全不会减少屏幕上的可视范围...

    “春城无处不飞花,寒食东风御柳斜”的意思.doc

    【“春城无处不飞花,寒食东风御柳斜”的意思】 “春城无处不飞花,寒食东风御柳斜”这句诗句出自唐朝诗人韩翃的《寒食》一诗,描绘了寒食节时春天的景色。春城指的是春天的都市,这里形象地表现出花开满城的盛况,...

    无处不项目-项目管理培训.pptx

    项目管理是现代组织中不可或缺的一种管理方式,尤其在信息技术(IT)行业中,项目管理的重要性日益凸显。本培训旨在帮助参与者理解和掌握项目管理的核心思想和实践技巧,以提高工作效率和项目成功率。 首先,热身...

    端口扫描工具“无处藏身”

    强大的IP端口扫描工具

    无处不项目-项目管理培训.pdf

    项目管理是一门科学和艺术,它涉及一系列的管理活动、知识、技能、工具和技术,目的是为了确保项目能在既定的范围、时间、成本以及质量要求内成功完成。项目管理的最终目标是满足项目干系人的需求和期望,这包括客户...

    无处藏身SeekyouV5.00绿色特别版

    请放心使用每天专人五小时以上工作量 两年多准备 = 国内最全的IP地址库!集成多种网络工具,更友好的界面,更方便的使用方法,更强大的搜索查询功能。这一切来源于我们不断的努力及您更大的支持!...

    360顽固木马专杀,让顽固木马无处可逃.

    360顽固木马专杀,让顽固木马无处可逃. 360顽固木马专杀,让顽固木马无处可逃. 360顽固木马专杀,让顽固木马无处可逃. 360顽固木马专杀,让顽固木马无处可逃. 360顽固木马专杀,让顽固木马无处可逃. 360顽固木马专杀,让...

    无处藏身(Seekyou) v4.50

    根据IP地址,查找其所在地的功能。支持剪切板操作,自动查找

    无处可微的连续函数+刘文-世界数学名题欣赏丛书.pdf

    根据提供的标题和描述信息,“无处可微的连续函数+刘文-世界数学名题欣赏丛书”这本书聚焦于一个特定的数学概念:无处可微的连续函数。这是一个非常有趣且具有挑战性的数学主题,涉及到了实分析中的深奥部分。 ### ...

    中国通定位器 让您无处遁逃(带防下空单和重复下单功能)

    【标题】"中国通定位器 让您无处遁逃(带防下空单和重复下单功能)" 提供的信息表明,这是一个与位置追踪相关的软件应用,可能是为中国市场定制的。结合"防下空单和重复下单功能"的描述,我们可以推测这是一款用于交易...

    Seekyou 无处藏身[搜MAC地址]

    在当今信息技术飞速发展的时代,局域网已成为日常工作与生活中不可或缺的一部分。它将多个计算设备连接成一个共享资源和通信的网络环境。然而,随着网络环境的复杂化,网络管理员在管理和维护局域网时经常会面临一...

    最强检测一切后门无处可逃

    最强检测后门,让后门无处可逃,功能很强大,可以检测到一切后门病毒,多的不说了,大家自己研究……

Global site tag (gtag.js) - Google Analytics