주어진 경로 에서 주어진 모드 에 맞 는 파일 을 검색 하고 압축 파일 을 진행 합 니 다.

3282 단어 RubyUP
이 예 는 첫 번 째 예(http://www.iteye.com/topic/524316)를 바탕 으로 구축 되 었 으 나 검색 한 파일 을 zip 파일 에 포장 해 야 합 니 다.
 
내 장 된 zlib 모듈 은 gzip 파일 을 처리 하 는 데 도움 을 줄 수 있 으 며,대부분의 경우 에 충분 합 니 다.여기 서 나 는 또 다른 좋 은 Ruby 라 이브 러 리,즉"ruby zip"을 사용 하여 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

좋은 웹페이지 즐겨찾기