亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

用Perl動態建立ZIP壓縮文件

2024-09-08 23:41:18
字體:
來源:轉載
供稿:網友

perl提供大量處理不同文件格式的內置函數和外來模塊。特別是,它可以通過archive::zip模塊,動態建立和閱讀zip壓縮文件,而不必依賴外來工具和實用工具。本教程說明這個模塊的基礎理論和常用方法。

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

perl> perl -mcpan -e "install archive::zip"

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

建立zip壓縮文件

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

列表a

這段腳本相當簡單,但值得仔細看一看。第一步是輸入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

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

以下是一個輸出結果樣本:

mystuff/ad.gif, 1447:345

mystuff/alcon.doc, 200:34

mystuff/alcon.xls, 28580:21483

在現有zip壓縮文件中插入文件

如果你已經有一個zip壓縮文件,只需要往其中增加一個新文件,那么操作過程就相當簡單:只要調用addfile()方法,增加文件的名稱和路徑即可。為說明這一點,我們回到dummy.zip文件,并試圖給它增加一些新文件。(列表c

列表c

在一個現有壓縮文件中插入一個文件的過程與建立一個新壓縮文件非常相似:首先初始化一個新的archive::zip對象,在其中讀入原始的壓縮文件,再建立一個包含增加文件清單的數組,并把這個數組提交給循環中的addfile()方法。成功添加文件后,就可以用overwrite()方法用更新后的壓縮文件覆蓋原始的壓縮文件。

從現有的zip壓縮文件中提取文件

往壓縮文件中添加文件后,如何將它們提取出來呢?很明顯,使用extracttree()方法!這個方法允許你把現有壓縮文件中的所有文件提取到一個指定的目錄中,如列表d所示:

列表d

在上例中,extracttree()方法解壓整個壓縮文件,將其中的所有文件提取到一個指定目錄中。如果這個目錄不存在,extracttree()方法將自動建立這個目錄;當然,這以腳本獲得寫磁盤的許可為前提。

有趣的是,你還可以進行更具選擇性的提取操作,只提取與一個預先定義的列表相匹配的文件。要完成這個任務,你需要使用extractmember()方法,它逐個提取壓縮文件,幫助你安置一個中間過濾器或在繼續提取前執行檢查。在模塊文檔中可以找相關實例。

靈活性

如上面的例子所示,perl的archive::zip類的功能相當強大,為你處理zip壓縮文件提供很大的靈活性。希望上面的腳本樣本提起你的興趣,讓你開始自己應用這個類,更一步了解它的運行機制。祝編程快樂!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品丝袜视频| 亚洲图中文字幕| 亚洲欧美中文日韩在线| 欧美日韩人人澡狠狠躁视频| 成人激情在线观看| 亚洲淫片在线视频| 国产精品色午夜在线观看| 久久亚洲国产精品| 欧美人交a欧美精品| 91av视频在线观看| 国产精品激情自拍| 久久久精品欧美| 国产欧美日韩中文字幕在线| 激情久久av一区av二区av三区| 亚洲男人天堂手机在线| 91免费在线视频网站| 日韩在线观看免费全| 国产精品久久久久9999| 亚洲色图13p| 日韩一区二区三区国产| 欧美午夜女人视频在线| 中文字幕国产精品| 亚洲男人的天堂网站| 一区二区三区视频免费在线观看| 亚洲自拍偷拍网址| 成人免费视频a| 91国偷自产一区二区三区的观看方式| 欧美午夜精品久久久久久人妖| 日韩国产一区三区| 国产精品电影观看| 欧美成人三级视频网站| 日本成人黄色片| 国产精品伦子伦免费视频| 亚洲成人精品视频在线观看| www.国产一区| 久久精品亚洲精品| 国产精品自拍网| 国产啪精品视频| 欧美亚洲国产日本| 久久久精品一区二区三区| 国产欧美精品xxxx另类| 91美女片黄在线观看游戏| 欧美精品少妇videofree| 中文字幕在线精品| 亚洲福利视频专区| 国产裸体写真av一区二区| 欧美一级大片视频| 91网站免费看| 亚洲另类欧美自拍| 亚洲一区制服诱惑| 久久噜噜噜精品国产亚洲综合| 久久精品亚洲国产| 国产91av在线| 国产精品美女久久久久av超清| 久久精品国产亚洲| 久久国产加勒比精品无码| 久久精品亚洲精品| 午夜精品一区二区三区在线| 国产精品久久久久久中文字| 日韩欧美成人区| 韩国v欧美v日本v亚洲| 成人免费福利视频| 毛片精品免费在线观看| 欧美高清电影在线看| 国产精品自拍偷拍视频| 日韩激情av在线免费观看| 国产精品久久久久9999| 国产精品美女久久久久av超清| 精品亚洲永久免费精品| 亚洲欧洲在线看| 国产精品激情av电影在线观看| 日韩中文字幕视频在线观看| 亚洲精品美女免费| 亚洲xxxxx电影| 4438全国成人免费| 国产成人高清激情视频在线观看| 欧美亚洲视频在线看网址| 成人在线免费观看视视频| 精品二区三区线观看| 国产精品成人国产乱一区| 成人国产精品av| 亚洲精品成a人在线观看| 日韩一级黄色av| 国产区精品在线观看| 精品偷拍一区二区三区在线看| 日韩成人高清在线| 久久99久国产精品黄毛片入口| 九九热精品视频| 国语自产精品视频在免费| 亚洲国产日韩欧美在线图片| 色视频www在线播放国产成人| 亚洲国产精彩中文乱码av在线播放| 热99精品只有里视频精品| 日韩禁在线播放| 国产精品久久久久久久天堂| 亚洲国产精品成人一区二区| 最近2019年中文视频免费在线观看| 亚洲国语精品自产拍在线观看| 国产精品小说在线| 久久不射热爱视频精品| 成人精品视频99在线观看免费| 18性欧美xxxⅹ性满足| 日韩高清有码在线| 亚洲精品成人久久电影| 国产精品黄色影片导航在线观看| 欧美日本在线视频中文字字幕| 欧美又大粗又爽又黄大片视频| 久久精品一本久久99精品| 91九色综合久久| 国产精品久久久一区| 亚洲a在线播放| 亚洲人成电影在线观看天堂色| 日韩在线观看免费全集电视剧网站| 亚洲国产精品女人久久久| 亚洲国产女人aaa毛片在线| 日韩欧美精品在线观看| 成人福利视频在线观看| 亚洲xxx大片| 国产精品十八以下禁看| 亚洲欧美激情精品一区二区| 国产精品视频白浆免费视频| 欧美午夜久久久| 国产成人免费av电影| 欧美在线观看一区二区三区| 在线日韩中文字幕| 98精品国产高清在线xxxx天堂| 亚洲精品狠狠操| 日韩av中文字幕在线免费观看| 国产一区二区三区欧美| 久久久精品2019中文字幕神马| 国产在线视频2019最新视频| 久久久久久com| 91av视频在线免费观看| 欧美精品www在线观看| 久久福利视频网| 国产精品成人免费电影| 国产综合视频在线观看| 亚洲精品久久久久久下一站| 色偷偷噜噜噜亚洲男人| 欧美极品美女电影一区| 欧美大尺度电影在线观看| 成人黄色av免费在线观看| 亚洲高清一区二| 久久精品中文字幕免费mv| 成人有码视频在线播放| 日韩欧美中文字幕在线播放| 亚洲一级黄色av| 色综合视频网站| 日韩精品中文字| 久久综合色88| 久久精品美女视频网站| 国模私拍一区二区三区| 精品国产成人av| 日本韩国欧美精品大片卡二| 亚洲欧洲国产一区| 成人性生交大片免费看视频直播| 亚洲va码欧洲m码| 欧美成人黑人xx视频免费观看| 日本欧美精品在线| 欧美精品久久久久久久| 中文字幕日韩精品有码视频| 欧亚精品在线观看| 欧美日韩中文字幕在线| 国产精品成av人在线视午夜片|