这个例子构建在第一个例子(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
分享到:
- 2009-11-25 17:18
- 浏览 1280
- 评论(1)
- 论坛回复 / 浏览 (1 / 1487)
- 查看更多
相关推荐
综上所述,在处理非归档模式下System表空间损坏的问题时,首先需要确认数据库的状态,并尝试使用介质恢复来修复损坏的数据文件。如果归档日志不可用,可以考虑重建控制文件。在整个恢复过程中,确保数据安全至关重要...
根据给定文件中的描述,我们可以将DB2日志清理的过程分解为以下几个步骤: 1. **检查备份目录空间**:首先,需要确保有足够的空间来进行备份操作。可以通过`du`命令来查看`/db2_backup`目录下的空间使用情况。如果...
### Windows常用设置归档知识点详解 ...在Windows系统中,确保时间的准确性是非常重要的,特别是...以上是对给定文件中提及的各个知识点的详细解释。希望这些信息能够帮助您更好地理解和应用Windows系统中的各种设置。
本文将深入解析如何利用批处理脚本来实现创建与文件同名的文件夹,并将文件移动到该文件夹中的过程,这是一项在数据管理、文件归档以及自动化处理流程中常见的需求。 ### 批处理脚本的核心概念 批处理脚本是基于...
在给定的部分内容中,我们可以看到对`dmarch.ini`文件的修改: ```ini [ARCHIVE_LOCAL1] ARCH_TYPE=LOCAL # 指定归档类型为本地归档 ARCH_DEST=/opt/dmdbms/data/DAMENG # 指定归档文件存放路径 ARCH_FILE_SIZE=128...
`JarSearchFile`可能是一个命令行工具或者库,它的主要功能是在给定的文件夹结构中遍历所有的`jar`文件,并根据用户提供的类名或文件名搜索对应的`.class`文件。这个工具通常具备以下特性: 1. **递归搜索**:`...
在给定的内容中,程序开始便声明了一个BOOL类型的变量ret来存储操作结果,并使用CreateFile函数进行文件操作。 CreateFile函数是Windows API中用于打开和创建文件、管道、邮槽、通信服务、控制台缓冲区以及目录对象...
从给定文件的标题和部分内容来看,本文将要介绍的是关于OUTLOOK邮件的归档与整理的知识点。由于文件的描述内容与标题一致,且标签部分为空,我们将重点放在标题和部分内容上,同时注意内容中的OCR识别错误和漏识别的...
在给定的部分内容中,可以看到一段VB脚本用于将指定文件`test.xls`压缩成`t1.rar`文件。下面是对这段脚本的详细解析: ```vb Dim rarStr As String 'WinRAR.exe路径 Dim strFile As String '源文件路径 Dim ...
可执行JAR(Java Archive)文件是Java编程语言中的一种归档格式,它允许将多个类文件和其他资源打包成一个单一的文件,便于分发和运行。在Java中,一个可执行JAR文件通常包含一个主类,这个主类包含了程序的入口点,...
在日常工作中,文件处理软件的应用场景广泛,例如在备份、分享、归档、压缩等领域。了解并熟练掌握一款好的文件处理工具,能极大地提高我们的工作效率。例如,UltraFileSplitter这样的工具对于处理大型数据文件、...
这个函数用于搜索指定路径下符合特定文件名模式的文件,并将这些文件移动到新的路径下。它会遍历目标路径下的所有文件和子目录,如果当前路径是文件夹,则将子目录加入队列继续遍历;如果当前路径是文件,则将文件名...
在Java编程中,将编译好的程序进行运行通常涉及到类路径(Classpath)的设定以及理解如何执行包含类的JAR文件。在这个"第1章作业1"中,我们需要执行两个任务:一是直接运行名为`Welcome`的类,二是通过`run.jar`来...
- **文件同步**:实时监控两个目录之间的文件差异,并进行同步操作。 #### 总结 通过以上分析,我们可以了解到如何利用Windows API中的`FindFirstChangeNotification`和`WaitForSingleObject`函数实现对指定目录...
在PHP开发中,经常需要对文件进行压缩操作,比如将一个或多个文件压缩成一个ZIP文件以供下载或其他处理。本篇将详细介绍如何利用PHP内置的`ZipArchive`类来实现这一功能。 #### 二、`ZipArchive`类简介 `Zip...
- `grep "字符串" 文件名`:搜索文件中包含指定字符串的所有行。 - `grep -i "字符串" 文件名`:忽略大小写搜索。 - `grep -w "字符串" 文件名`:仅以单词形式进行搜索。 - `grep -n "字符串" 文件名`:显示包含...
其中,`.jar`文件必须放置在`WEB-INF/lib`目录下,这是因为Tomcat等应用服务器在加载WAR包时会自动加载这个目录下的所有`.jar`文件,并将其加入到类路径中,从而确保应用程序可以访问这些库。 #### 三、WAR包的创建...