現在的位置: 首頁 > 演算法 > 正文

怎樣用Perl動態建立ZIP壓縮文件

2020年05月22日 演算法 ⁄ 共 1976字 ⁄ 字型大小 評論關閉

  Perl提供大量處理不同文件格式的內置函數和外來模塊。特別是,它可以通過Archive::Zip模塊,動態建立和閱讀ZIP壓縮文件,而不必依賴外來工具和實用工具。下面學步園小編來講解下怎樣用Perl動態建立ZIP壓縮文件?

  怎樣用Perl動態建立ZIP壓縮文件

  首先,在Perl提示符下運行以下命令下載並安裝該模塊(如果你還沒有安裝它):

  perl>perl-MCPAN-e"installArchive::Zip"

  注意,Archive::Zip模塊依靠zlib庫運行,因此在安裝過程中,系統可能要求你下載並安裝這個庫。

  建立ZIP壓縮文件

  首先我們看一個簡單的例子。動態建立一個包含幾個其它文件的ZIP壓縮文件。輸入(或複製)如列表A所示的腳本:

  列表A

  #!/bin/perl

  useArchive::Zip;#imports

  $obj=Archive::Zip->new();#newinstance

  @files=('mystuff/ad.gif',

  'mystuff/alcon.doc',

  'mystuff/alcon.xls');#filestostore

  foreach$file(@files){

  $obj->addFile($file);#addfiles

  }

  if($obj->writeToFileNamed('dummy.zip')!=AZ_OK){#writetodisk

  print"Errorinarchivecreation!";

  }else{

  print"Archivecreatedsuccessfully!";

  }

  怎樣用Perl動態建立ZIP壓縮文件

  這段腳本相當簡單,但值得仔細看一看。第一步是輸入Archive::Zip模塊,並初始化Archive::Zip對象的一個實例。接下來,將所有文件清單以及它們在磁碟中的位置進行壓縮,保存為一個Perl數組。要記住的是,腳本(準確地說,運行腳本的用戶)必須擁有訪問這些磁碟位置的許可,否則建立壓縮文件的過程就會失敗。

  然後,用foreach()循環遍歷這個數組,用對象的addFile()方法在壓縮文件中增加列出的文件。一旦循環完成,則通過調用writeToFileNamed()方法把最終的壓縮文件寫入磁碟,writeToFileNamed()方法接受所建立的ZIP文件的完整路徑和名稱。記住,腳本必須擁有向指定的磁碟位置寫入文件的許可;否則,writeToFileNamed()方法將會失敗,因而不能建立壓縮文件。

  特別要注意調用writeToFileNamed():方法的返回值。如果文件被正確寫入,Archive::Zip返回一個AZ_OK值,在往後操作前系統會檢查這個值。之後在這個文件中你還會看到這個返回值。

  要應用上面的腳本實例,請修改@files數組的內容以反映你的當地系統配置,並試圖在命令提示符或瀏覽器中執行它。如果一切運行正常,這段腳本應該會找到並將所有文件讀入一個叫做dummy.zip的文件中。

  查看ZIP壓縮文件內容

  如何查看一個現有的壓縮文件呢?Archive::Zip帶有一個read()方法,可以閱讀一個壓縮文件的內容,並可訪問與單個文件有關的詳細信息。列表B是它的一個應用實例:

  列表B

  #!/bin/perl

  useArchive::Zip;#imports

  $obj=Archive::Zip->new();#newinstance

  $status=$obj->read("dummy.zip");#readfilecontents

  if($status!=AZ_OK){

  die('Errorinfile!');

  }else{

  foreach$member($obj->members()){#printfileinformation

  print$member->fileName(),",",$member->uncompressedSize(),":",$member->compressedSize(),"n";

  }

  }

  這裡,read()方法用於閱讀ZIP壓縮文件並獲得與其內容有關的信息。然後,調用members()方法返回一個結構化對象數組,每個數組元素代表壓縮文件中的一個單獨文件。通常來說,數組中的每個對象包含相應文件的名稱信息、它的許可模式、狀態、壓縮類型、大小以及最後一次修改時間。我們可以用一個循環方便地提供這些信息,並對它們重新格式化,使它更具可讀性,如上面的列表B所示。

  以上就是關於「怎樣用Perl動態建立ZIP壓縮文件」的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平台!

抱歉!評論已關閉.