茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    用Perl動(dòng)態(tài)建立ZIP壓縮文件
    來源:易賢網(wǎng) 閱讀:1390 次 日期:2015-08-21 16:38:23
    溫馨提示:易賢網(wǎng)小編為您整理了“用Perl動(dòng)態(tài)建立ZIP壓縮文件”,方便廣大網(wǎng)友查閱!

    Perl提供大量處理不同文件格式的內(nèi)置函數(shù)和外來模塊。特別是,它可以通過Archive::Zip模塊,動(dòng)態(tài)建立和閱讀ZIP壓縮文件,而不必依賴外來工具和實(shí)用工具。本教程說明這個(gè)模塊的基礎(chǔ)理論和常用方法。

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

    perl> perl -MCPAN -e "install Archive::Zip"

    注意,Archive::Zip模塊依靠zlib庫運(yùn)行,因此在安裝過程中,系統(tǒng)可能要求你下載并安裝這個(gè)庫。

    建立ZIP壓縮文件

    首先我們看一個(gè)簡單的例子。動(dòng)態(tài)建立一個(gè)包含幾個(gè)其它文件的ZIP壓縮文件。輸入(或復(fù)制)如列表A所示的腳本:

    列表A

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

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

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

    要應(yīng)用上面的腳本實(shí)例,請修改@files數(shù)組的內(nèi)容以反映你的當(dāng)?shù)叵到y(tǒng)配置,并試圖在命令提示符或?yàn)g覽器中執(zhí)行它。如果一切運(yùn)行正常,這段腳本應(yīng)該會找到并將所有文件讀入一個(gè)叫做dummy.zip的文件中。

    查看ZIP壓縮文件內(nèi)容

    如何查看一個(gè)現(xiàn)有的壓縮文件呢?Archive::Zip帶有一個(gè)read()方法,可以閱讀一個(gè)壓縮文件的內(nèi)容,并可訪問與單個(gè)文件有關(guān)的詳細(xì)信息。列表B是它的一個(gè)應(yīng)用實(shí)例:

    列表B

    這里,read()方法用于閱讀ZIP壓縮文件并獲得與其內(nèi)容有關(guān)的信息。然后,調(diào)用members()方法返回一個(gè)結(jié)構(gòu)化對象數(shù)組,每個(gè)數(shù)組元素代表壓縮文件中的一個(gè)單獨(dú)文件。通常來說,數(shù)組中的每個(gè)對象包含相應(yīng)文件的名稱信息、它的許可模式、狀態(tài)、壓縮類型、大小以及最后一次修改時(shí)間。我們可以用一個(gè)循環(huán)方便地提供這些信息,并對它們重新格式化,使它更具可讀性,如上面的列表B所示。

    以下是一個(gè)輸出結(jié)果樣本:

    mystuff/ad.gif, 1447:345

    mystuff/alcon.doc, 200:34

    mystuff/alcon.xls, 28580:21483

    在現(xiàn)有ZIP壓縮文件中插入文件

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

    列表C

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

    從現(xiàn)有的ZIP壓縮文件中提取文件

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

    列表D

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

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

    靈活性

    如上面的例子所示,Perl的Archive::Zip類的功能相當(dāng)強(qiáng)大,為你處理ZIP壓縮文件提供很大的靈活性。希望上面的腳本樣本提起你的興趣,讓你開始自己應(yīng)用這個(gè)類,更一步了解它的運(yùn)行機(jī)制。祝編程快樂!

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:用Perl動(dòng)態(tài)建立ZIP壓縮文件
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)