Archive::Tar::File - 來自 Archive::Tar 的記憶體中萃取檔案的子類別
my @items = $tar->get_files;
print $_->name, ' ', $_->size, "\n" for @items;
print $object->get_content;
$object->replace_content('new content');
$object->rename( 'new/full/path/to/file.c' );
Archive::Tar::Files 提供一個簡潔的小物件層,用於記憶體中萃取的檔案。它主要在 Archive::Tar 內部使用,用於整理程式碼,但使用者也可以使用這個 API。
此套件中的許多方法都是 tar 標頭中各種欄位的存取器
檔案名稱
檔案模式
擁有檔案的使用者 ID
擁有檔案的群組 ID
檔案大小(以位元組為單位)
修改時間。若需要,會調整為 macOS 上的 Mac 時間
tar 標頭的檢查總和欄位
檔案類型(數字,但可以與匯出的常數相比較,請參閱 Archive::Tar 的文件)
如果檔案是符號連結,則為其指向的檔案
tar 魔術字串(對大多數使用者來說沒有用)
tar 版本字串(對大多數使用者來說沒有用)
擁有檔案的使用者名稱
擁有檔案的群組名稱
如果是特殊檔案,則為裝置主號碼
如果是特殊檔案,則為裝置次號碼
如果有的話,要加到解壓路徑前面的任何目錄
原始 tar 標頭(對大多數使用者來說沒有用)
從現有檔案傳回新的 Archive::Tar::File 物件。
失敗時傳回未定義。
從資料傳回新的 Archive::Tar::File 物件。
$path
定義檔案名稱(不需要存在),$data
定義檔案內容,而 $opt
是對屬性雜湊的參考,可用於覆寫預設屬性(tar 標頭中的欄位),這些屬性已在上述的存取器區段中說明。
失敗時傳回未定義。
從原始 512 位元組 tar 封存區塊中傳回新的 Archive::Tar::File 物件。
失敗時傳回未定義。
提取此物件,選擇性地使用替代名稱。
有關詳細資訊,請參閱 Archive::Tar->extract_file
。
成功時傳回 true,失敗時傳回 false。
從 tar 標頭傳回完整路徑;這基本上是 prefix
和 name
欄位的串接。
在讀取 tar 檔案時由 Archive::Tar 內部完成:驗證標頭與檢查碼,以確保 tar 檔案為整數。
成功時傳回 true,失敗時傳回 false
傳回布林值,表示目前的物件是否有內容。某些特殊檔案(例如目錄等)永遠不會有任何內容。此方法主要是確保在查看物件內容時,您不會收到使用未初始化值的警告。
傳回記憶體中檔案的目前內容
傳回記憶體中檔案的目前內容,作為純量參考。一般使用者不需要此功能,但如果您處理 tar 封存區中非常大的資料檔案,這將可以節省記憶體,因為它會透過參考傳遞內容,而不是先複製一份。
將檔案的目前內容替換為新內容。這只會影響記憶體中的封存區,在您寫入之前不會影響磁碟版本。
成功時傳回 true,失敗時傳回 false。
將目前的檔案重新命名為 $new_name。
請注意,您必須為 $new_name 指定 Unix 路徑,因為根據 tar 標準,封存區中的所有檔案都必須是 Unix 路徑。
成功時傳回 true,失敗時傳回 false。
將 $file 的模式變更為 $mode。模式可以是字串或數字,數字會被解釋為八進位,無論是否給定前導 0。
成功時傳回 true,失敗時傳回 false。
將 $file 的擁有者變更為 $user。如果給定 $group,也會變更 $group。您也可以傳遞單一參數,並使用冒號分隔使用者和群組,例如「root:wheel」。
成功時傳回 true,失敗時傳回 false。
若要快速檢查 Archive::Tar::File
物件的類型,可以使用下列方法
如果檔案類型為 file
,則傳回 true
如果檔案類型為 dir
,則傳回 true
如果檔案類型為 hardlink
,則傳回 true
如果檔案類型為 symlink
,則傳回 true
如果檔案類型為 chardev
,則傳回 true
如果檔案類型為 blockdev
,則傳回 true
如果檔案類型為 fifo
,則傳回 true
如果檔案類型為 socket
,則傳回 true
如果檔案類型為 LongLink
,則傳回 true。在成功 read
之後不應發生。
如果檔案類型為 Label
,則傳回 true。在成功 read
之後不應發生。
如果檔案類型為 unknown
,則傳回 true