ซิปยูทิล

public class ZipUtil
extends Object

java.lang.Object
com.android.tradefed.util.ZipUtil


คลาสตัวช่วยสำหรับการดำเนินการที่เกี่ยวข้องกับการบีบอัด

สรุป

ช่างก่อสร้างสาธารณะ

ZipUtil()

วิธีการสาธารณะ

static void addToZip(ZipOutputStream out, File file, relativePathSegs)

เพิ่มไฟล์และเนื้อหาในไฟล์ตามรอบไปยัง ZipOutputStream

static void applyPermission(File targetFile, CentralDirectoryInfo zipEntry)

ใช้สิทธิ์ของไฟล์ที่กำหนดค่าไว้ในรายการไดเรกทอรีกลาง

static void closeZip(ZipFile zipFile)

ปิด ERROR(/ZipFile) ที่เปิดอยู่โดยไม่คำนึงถึงข้อยกเว้น

static File createZip(File dir)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

static File createZip( files, String name)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่กำหนด

static File createZip(File dir, String name)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

static File createZip( files)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่กำหนด

static void createZip(File dir, File zipFile)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

static void createZip( files, File zipFile)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ที่มีไฟล์ที่กำหนด

static File extractFileFromZip(ZipFile zipFile, String filePath)

วิธียูทิลิตีในการแยกไฟล์ที่เฉพาะเจาะจง 1 ไฟล์จากไฟล์ ZIP เป็นไฟล์ tmp

static void extractZip(ZipFile zipFile, File destDir)

วิธียูทิลิตีในการแยกเนื้อหาทั้งหมดของไฟล์ ZIP ลงในไดเรกทอรีที่กำหนด

static void extractZip(ZipFile zipFile, File destDir, shouldExtract)

วิธียูทิลิตีในการแยกเนื้อหาของไฟล์ ZIP ลงในไดเรกทอรีที่กำหนด

static File extractZipToTemp(File zipFile, String nameHint)

แตกไฟล์ ZIP ไปยังโฟลเดอร์ชั่วคราวที่เติมสตริงไว้ด้านหน้า

static getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

static getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

static getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

static getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

static void gzipFile(File file, File gzipFile)

เมธอดของ Helper ในการสร้างเวอร์ชัน gzip ของไฟล์เดียว

static boolean isZipFileValid(File zipFile, boolean thorough)

วิธียูทิลิตียืนยันว่าไฟล์ ZIP ไม่เสียหาย

static void unzipPartialZipFile(File partialZip, File targetFile, CentralDirectoryInfo zipEntry, LocalFileHeader localFileHeader, long startOffset)

แยกไฟล์ที่ขอไฟล์เดียวจากไฟล์ ZIP บางส่วน

static void unzipPartialZipFolder(File targetFile, CentralDirectoryInfo zipEntry)

แยกโฟลเดอร์ที่ขอจากไฟล์ ZIP บางส่วนและใช้สิทธิ์ที่เหมาะสม

วิธีการป้องกัน

static void validateDestinationDir(File destDir, String filename)

ช่างก่อสร้างสาธารณะ

ซิปยูทิล

public ZipUtil ()

วิธีการสาธารณะ

เพิ่ม ToZip

public static void addToZip (ZipOutputStream out, 
                File file, 
                 relativePathSegs)

เพิ่มไฟล์และเนื้อหาในไฟล์ตามรอบไปยัง ZipOutputStream

พารามิเตอร์
out ZipOutputStream: ERROR(/ZipOutputStream)

file File: ERROR(/File) ที่จะเพิ่มไปยังสตรีม

relativePathSegs : เส้นทางของไฟล์ที่เกี่ยวข้องกัน รวมถึงตัวคั่น

การขว้าง
หากเพิ่มไฟล์ลงใน ZIP ไม่สำเร็จ

ใช้สิทธิ์

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

ใช้สิทธิ์ของไฟล์ที่กำหนดค่าไว้ในรายการไดเรกทอรีกลาง

พารามิเตอร์
targetFile File: ERROR(/File) ที่จะตั้งสิทธิ์

zipEntry CentralDirectoryInfo: ออบเจ็กต์ CentralDirectoryInfo ที่มีสิทธิ์ในไฟล์

การขว้าง
หากเข้าถึงไฟล์ไม่สำเร็จ

CloseZip

public static void closeZip (ZipFile zipFile)

ปิด ERROR(/ZipFile) ที่เปิดอยู่โดยไม่คำนึงถึงข้อยกเว้น

พารามิเตอร์
zipFile ZipFile: ไฟล์ที่จะปิด

CreateZip

public static File createZip (File dir)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

พารามิเตอร์
dir File: ไดเรกทอรีที่จะบีบอัด

คิกรีเทิร์น
File ไฟล์ ZIP ชั่วคราว ERROR(/File) ที่มีเนื้อหาไดเรกทอรี

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

CreateZip

public static File createZip ( files, 
                String name)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่กำหนด

พารามิเตอร์
files : รายการไฟล์ที่จะบีบอัด

name String: ชื่อพื้นฐานของไฟล์ ZIP ที่สร้างขึ้นโดยไม่มีส่วนขยาย

คิกรีเทิร์น
File ไฟล์ ZIP ชั่วคราว ERROR(/File) ที่มีเนื้อหาไดเรกทอรี

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

CreateZip

public static File createZip (File dir, 
                String name)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

พารามิเตอร์
dir File: ไดเรกทอรีที่จะบีบอัด

name String: ชื่อพื้นฐานของไฟล์ ZIP ที่สร้างขึ้นโดยไม่มีส่วนขยาย

คิกรีเทิร์น
File ไฟล์ ZIP ชั่วคราว ERROR(/File) ที่มีเนื้อหาไดเรกทอรี

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

CreateZip

public static File createZip ( files)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่กำหนด

พารามิเตอร์
files : รายการไฟล์ที่จะบีบอัด

คิกรีเทิร์น
File ไฟล์ ZIP ชั่วคราว ERROR(/File) ที่มีเนื้อหาไดเรกทอรี

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

CreateZip

public static void createZip (File dir, 
                File zipFile)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ที่มีไดเรกทอรีที่กำหนดและเนื้อหาทั้งหมด

พารามิเตอร์
dir File: ไดเรกทอรีที่จะบีบอัด

zipFile File: ไฟล์ ZIP ที่จะสร้าง ซึ่งไม่ควรมีอยู่แล้ว

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

CreateZip

public static void createZip ( files, 
                File zipFile)

วิธียูทิลิตีในการสร้างไฟล์ ZIP ที่มีไฟล์ที่กำหนด

พารามิเตอร์
files : รายการไฟล์ที่จะบีบอัด

zipFile File: ไฟล์ ZIP ที่จะสร้าง ซึ่งไม่ควรมีอยู่แล้ว

การขว้าง
หากสร้างไฟล์ ZIP ไม่สำเร็จ

แยกไฟล์จาก Zip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

วิธียูทิลิตีในการแยกไฟล์ที่เฉพาะเจาะจง 1 ไฟล์จากไฟล์ ZIP เป็นไฟล์ tmp

พารามิเตอร์
zipFile ZipFile: ERROR(/ZipFile) ที่จะแตกข้อมูล

filePath String: เส้นทาง filePath ที่จะแยก

คิกรีเทิร์น
File ERROR(/File) หรือ Null หากไม่พบ

การขว้าง
หากแตกไฟล์ไม่สำเร็จ

แตกไฟล์ Zip

public static void extractZip (ZipFile zipFile, 
                File destDir)

วิธียูทิลิตีในการแยกเนื้อหาทั้งหมดของไฟล์ ZIP ลงในไดเรกทอรีที่กำหนด

พารามิเตอร์
zipFile ZipFile: ERROR(/ZipFile) ที่จะแตกข้อมูล

destDir File: ไดเรกทอรีภายในเครื่องที่จะแตกไฟล์

การขว้าง
หากแตกไฟล์ไม่สำเร็จ

แตกไฟล์ Zip

public static void extractZip (ZipFile zipFile, 
                File destDir, 
                 shouldExtract)

วิธียูทิลิตีในการแยกเนื้อหาของไฟล์ ZIP ลงในไดเรกทอรีที่กำหนด

พารามิเตอร์
zipFile ZipFile: ERROR(/ZipFile) ที่จะแตกข้อมูล

destDir File: ไดเรกทอรีภายในเครื่องที่จะแตกไฟล์

shouldExtract : เครื่องหมายแสดงการแบ่งแยกหากควรแยก ZipEntry

การขว้าง
หากแตกไฟล์ไม่สำเร็จ

แตกข้อมูล ZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

แตกไฟล์ ZIP ไปยังโฟลเดอร์ชั่วคราวที่เติมสตริงไว้ด้านหน้า

พารามิเตอร์
zipFile File: ไฟล์ ZIP ที่จะแตกข้อมูล

nameHint String: คำนำหน้าสำหรับไดเรกทอรีชั่วคราว

คิกรีเทิร์น
File ERROR(/File) ที่ชี้ไปยังไดเรกทอรีชั่วคราว

getZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                boolean useZip64)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

พารามิเตอร์
partialZipFile File: ออบเจ็กต์ ERROR(/File) ของไฟล์ ZIP บางส่วนที่มีรายการไดเรกทอรีส่วนกลาง

endCentralDirInfo EndCentralDirectoryInfo: ออบเจ็กต์ EndCentralDirectoryInfo ของไฟล์ ZIP

useZip64 boolean: บูลีนเพื่อรองรับรูปแบบ zip64 ในการดาวน์โหลดบางส่วน

คิกรีเทิร์น
รายการ CentralDirectoryInfo ของไฟล์ ZIP

การขว้าง
ข้อยกเว้น IO

getZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

พารามิเตอร์
partialZipFile File: ออบเจ็กต์ ERROR(/File) ของไฟล์ ZIP บางส่วนที่มีรายการไดเรกทอรีส่วนกลาง

endCentralDirInfo EndCentralDirectoryInfo: ออบเจ็กต์ EndCentralDirectoryInfo ของไฟล์ ZIP

offset long: ออฟเซ็ตในไฟล์ ZIP บางส่วนที่เนื้อหาของรายการไดเรกทอรีกลางเริ่มต้น

คิกรีเทิร์น
รายการ CentralDirectoryInfo ของไฟล์ ZIP

การขว้าง
ข้อยกเว้น IO

getZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

พารามิเตอร์
partialZipFile File: ออบเจ็กต์ ERROR(/File) ของไฟล์ ZIP บางส่วนที่มีรายการไดเรกทอรีส่วนกลาง

endCentralDirInfo EndCentralDirectoryInfo: ออบเจ็กต์ EndCentralDirectoryInfo ของไฟล์ ZIP

คิกรีเทิร์น
รายการ CentralDirectoryInfo ของไฟล์ ZIP

การขว้าง
ข้อยกเว้น IO

getZipCentralDirectoryInfos

public static  getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset, 
                boolean useZip64)

รับรายการ {link CentralDirectoryInfo} สำหรับไฟล์ในไฟล์ ZIP

พารามิเตอร์
partialZipFile File: ออบเจ็กต์ ERROR(/File) ของไฟล์ ZIP บางส่วนที่มีรายการไดเรกทอรีส่วนกลาง

endCentralDirInfo EndCentralDirectoryInfo: ออบเจ็กต์ EndCentralDirectoryInfo ของไฟล์ ZIP

offset long: ออฟเซ็ตในไฟล์ ZIP บางส่วนที่เนื้อหาของรายการไดเรกทอรีกลางเริ่มต้น

useZip64 boolean: บูลีนเพื่อรองรับรูปแบบ zip64 ในการดาวน์โหลดบางส่วน

คิกรีเทิร์น
รายการ CentralDirectoryInfo ของไฟล์ ZIP

การขว้าง
ข้อยกเว้น IO

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

เมธอดของ Helper ในการสร้างเวอร์ชัน gzip ของไฟล์เดียว

พารามิเตอร์
file File: ไฟล์ต้นฉบับ

gzipFile File: ไฟล์สำหรับวางเนื้อหาที่บีบอัด

การขว้าง
ข้อยกเว้น IO

เป็นไฟล์ ZIP ที่ถูกต้อง

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

วิธียูทิลิตียืนยันว่าไฟล์ ZIP ไม่เสียหาย

พารามิเตอร์
zipFile File: ERROR(/File) ที่ต้องตรวจสอบ

thorough boolean: ต้องการพยายามแยกข้อมูลที่เก็บถาวรอย่างสมบูรณ์หรือไม่ หากเป็น false วิธีนี้จะไม่สามารถตรวจหาข้อผิดพลาด CRC ในที่เก็บถาวรที่มีรูปแบบเหมาะสมได้

คิกรีเทิร์น
boolean false หากไฟล์ดูเหมือนเสียหาย มิฉะนั้นไฟล์จะเสียหาย true

การขว้าง
หากไม่สามารถเปิดหรืออ่านไฟล์ได้

แตกไฟล์ ZIP บางส่วน

public static void unzipPartialZipFile (File partialZip, 
                File targetFile, 
                CentralDirectoryInfo zipEntry, 
                LocalFileHeader localFileHeader, 
                long startOffset)

แยกไฟล์ที่ขอไฟล์เดียวจากไฟล์ ZIP บางส่วน

วิธีนี้จะถือว่าไฟล์ทั้งหมดอยู่ในดิสก์เดียวกันเมื่อบีบอัด

หาก ERROR(/targetFile) เป็นไดเรกทอรี ระบบจะสร้างไดเรกทอรีเปล่าโดยไม่มีเนื้อหา

หาก ERROR(/targetFile) เป็นลิงก์สัญลักษณ์ ระบบจะสร้างลิงก์สัญลักษณ์แต่ไม่ได้รับการแก้ไข

ยังไม่รองรับฟีเจอร์ต่อไปนี้

ไฟล์ ZIP ที่มีขนาดใหญ่กว่า 4 GB

ZIP64(ต้องอัปเดต ZipLocalFileHeader ในขนาดที่บีบอัด)

ไฟล์ ZIP ที่เข้ารหัส

พารามิเตอร์
partialZip File: ERROR(/File) ที่เป็นส่วนหนึ่งของไฟล์ ZIP

targetFile File: ERROR(/File) สำหรับบันทึกไฟล์ที่แยกไว้

zipEntry CentralDirectoryInfo: ออบเจ็กต์ CentralDirectoryInfo ของไฟล์ที่จะแยกจากไฟล์ ZIP บางส่วน

localFileHeader LocalFileHeader: ออบเจ็กต์ LocalFileHeader ของไฟล์ที่จะแยกจากไฟล์ ZIP บางส่วน

startOffset long: เริ่มต้นออฟเซ็ตของไฟล์ที่จะแยก

การขว้าง
ข้อยกเว้น IO

แยกโฟลเดอร์ Zip บางส่วน

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

แยกโฟลเดอร์ที่ขอจากไฟล์ ZIP บางส่วนและใช้สิทธิ์ที่เหมาะสม

พารามิเตอร์
targetFile File: ERROR(/File) สำหรับบันทึกไฟล์ที่แยกไว้

zipEntry CentralDirectoryInfo: ออบเจ็กต์ CentralDirectoryInfo ของไฟล์ที่จะแยกจากไฟล์ ZIP บางส่วน

การขว้าง
ข้อยกเว้น IO

วิธีการป้องกัน

ตรวจสอบปลายทางDir

protected static void validateDestinationDir (File destDir, 
                String filename)

พารามิเตอร์
destDir File

filename String