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

在给定路径中搜索符合给定模式的文件并进行归档

阅读更多

这个例子构建在第一个例子(http://www.iteye.com/topic/524316)的基础上,但是需要将搜索到的文件打包到zip文件中。

 

内建的zlib模块可帮助处理gzip文件,对于大多数情况它都够好。在这里我将使用另一个很好的Ruby库,即“rubyzip”,来创建和处理zip归档文件。

 

安装rubyzip

 

gem install rubyzip

 

require 'find'
require 'zip/zip'

puts ""
puts "------------------File Search and Zip-----------------------------"
puts ""
print "Enter the search path    : "
searchpath = gets
searchpath = searchpath.chomp
puts ""
print "Enter the search pattern : "
pattern = gets
pattern = pattern.chomp
puts"----------------------------------------------------------------------"
puts "Searching in " + searchpath + " for files matching pattern " + pattern
puts"----------------------------------------------------------------------"
puts ""
puts"----------------------------------------------------------------------"
puts "Zipping up the found files..."
puts"----------------------------------------------------------------------"
Zip::ZipFile.open("test.zip", Zip::ZipFile::CREATE) {|zipfile|
Find.find(searchpath) do |path|
  if FileTest.directory?(path)
     if File.basename(path)[0] == ?.
       Find.prune
     else
       next
     end
   else
       if File.fnmatch(pattern, File.basename(path))
          puts File.basename(path)
          zipfile.add(File.basename(path), path)  #将符合的文件添加到zip归档中
       end
   end
end
}

 

在命令行输入ruby zip.rb运行该文件,然后输入搜索路径D:\ruby和匹配模式*.rb,下面是一个示例输出:

 

-----------------------File Search and Zip-----------------------------------

Enter the search path    : D:\ruby

Enter the search pattern : *.rb
----------------------------------------------------------------------
Searching in D:\ruby for files matching pattern *.rb
----------------------------------------------------------------------

----------------------------------------------------------------------
Zipping up the found files...
----------------------------------------------------------------------
points_controller.rb
packages_controller.rb
orders_controller.rb

 

这样,在当前目录下便产生了一个test.zip文件。

 

现在输入unzip -l test.zip进行解压,下面是一个示例输出:

 

Archive:  test.zip
Length        Date      Time        Name
--------    --------   ------  -------------------
 2341       11-25-09   17:05   orders_controller.rb
 21000      11-25-09   17:05   packages_controller.rb
 12889      11-25-09   17:05   points_controller.rb
--------                       -------------------
 36230                         3 files

 

分享到:
评论
1 楼 rubynroll 2009-12-04  
find . -name *.rb | xargs tar -zcvf test.tgz

相关推荐

    非归档模式system表空间损坏数据库恢复.docx

    综上所述,在处理非归档模式下System表空间损坏的问题时,首先需要确认数据库的状态,并尝试使用介质恢复来修复损坏的数据文件。如果归档日志不可用,可以考虑重建控制文件。在整个恢复过程中,确保数据安全至关重要...

    DB2 归档日志清理

    根据给定文件中的描述,我们可以将DB2日志清理的过程分解为以下几个步骤: 1. **检查备份目录空间**:首先,需要确保有足够的空间来进行备份操作。可以通过`du`命令来查看`/db2_backup`目录下的空间使用情况。如果...

    windows常用设置归档

    ### Windows常用设置归档知识点详解 ...在Windows系统中,确保时间的准确性是非常重要的,特别是...以上是对给定文件中提及的各个知识点的详细解释。希望这些信息能够帮助您更好地理解和应用Windows系统中的各种设置。

    批处理实现新建一和文件同名文件夹并将该文件放到文件夹中

    本文将深入解析如何利用批处理脚本来实现创建与文件同名的文件夹,并将文件移动到该文件夹中的过程,这是一项在数据管理、文件归档以及自动化处理流程中常见的需求。 ### 批处理脚本的核心概念 批处理脚本是基于...

    达梦开启归档和闪回的方式

    在给定的部分内容中,我们可以看到对`dmarch.ini`文件的修改: ```ini [ARCHIVE_LOCAL1] ARCH_TYPE=LOCAL # 指定归档类型为本地归档 ARCH_DEST=/opt/dmdbms/data/DAMENG # 指定归档文件存放路径 ARCH_FILE_SIZE=128...

    在jar包下找class文件

    `JarSearchFile`可能是一个命令行工具或者库,它的主要功能是在给定的文件夹结构中遍历所有的`jar`文件,并根据用户提供的类名或文件名搜索对应的`.class`文件。这个工具通常具备以下特性: 1. **递归搜索**:`...

    Windows下操作文件API接口.pdf

    在给定的内容中,程序开始便声明了一个BOOL类型的变量ret来存储操作结果,并使用CreateFile函数进行文件操作。 CreateFile函数是Windows API中用于打开和创建文件、管道、邮槽、通信服务、控制台缓冲区以及目录对象...

    OUTLOOK邮件归档整理.pdf

    从给定文件的标题和部分内容来看,本文将要介绍的是关于OUTLOOK邮件的归档与整理的知识点。由于文件的描述内容与标题一致,且标签部分为空,我们将重点放在标题和部分内容上,同时注意内容中的OCR识别错误和漏识别的...

    VB_WinRAR 将文件转换为压缩文件

    在给定的部分内容中,可以看到一段VB脚本用于将指定文件`test.xls`压缩成`t1.rar`文件。下面是对这段脚本的详细解析: ```vb Dim rarStr As String 'WinRAR.exe路径 Dim strFile As String '源文件路径 Dim ...

    可执行jar文件.以及执行命令

    可执行JAR(Java Archive)文件是Java编程语言中的一种归档格式,它允许将多个类文件和其他资源打包成一个单一的文件,便于分发和运行。在Java中,一个可执行JAR文件通常包含一个主类,这个主类包含了程序的入口点,...

    文件处理软件

    在日常工作中,文件处理软件的应用场景广泛,例如在备份、分享、归档、压缩等领域。了解并熟练掌握一款好的文件处理工具,能极大地提高我们的工作效率。例如,UltraFileSplitter这样的工具对于处理大型数据文件、...

    Python3批量移动指定文件到指定文件夹方法示例

    这个函数用于搜索指定路径下符合特定文件名模式的文件,并将这些文件移动到新的路径下。它会遍历目标路径下的所有文件和子目录,如果当前路径是文件夹,则将子目录加入队列继续遍历;如果当前路径是文件,则将文件名...

    第1章作业1

    在Java编程中,将编译好的程序进行运行通常涉及到类路径(Classpath)的设定以及理解如何执行包含类的JAR文件。在这个"第1章作业1"中,我们需要执行两个任务:一是直接运行名为`Welcome`的类,二是通过`run.jar`来...

    判断目录文件是否改变

    - **文件同步**:实时监控两个目录之间的文件差异,并进行同步操作。 #### 总结 通过以上分析,我们可以了解到如何利用Windows API中的`FindFirstChangeNotification`和`WaitForSingleObject`函数实现对指定目录...

    php压缩zip文件

    在PHP开发中,经常需要对文件进行压缩操作,比如将一个或多个文件压缩成一个ZIP文件以供下载或其他处理。本篇将详细介绍如何利用PHP内置的`ZipArchive`类来实现这一功能。 #### 二、`ZipArchive`类简介 `Zip...

    c高级知识总结,增加脚本部分

    - `grep "字符串" 文件名`:搜索文件中包含指定字符串的所有行。 - `grep -i "字符串" 文件名`:忽略大小写搜索。 - `grep -w "字符串" 文件名`:仅以单词形式进行搜索。 - `grep -n "字符串" 文件名`:显示包含...

    将WEB项目以war包形式部署到tomcat中

    其中,`.jar`文件必须放置在`WEB-INF/lib`目录下,这是因为Tomcat等应用服务器在加载WAR包时会自动加载这个目录下的所有`.jar`文件,并将其加入到类路径中,从而确保应用程序可以访问这些库。 #### 三、WAR包的创建...

Global site tag (gtag.js) - Google Analytics