ZipUtil

public class ZipUtil
extends Object

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


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

สรุป

เครื่องมือสร้างสาธารณะ

ZipUtil()

เมธอดสาธารณะ

static void addToZip(ZipOutputStream out, File file, List<String> relativePathSegs)

เพิ่มไฟล์ที่ระบุและเนื้อหาของไฟล์ลงใน ZipOutputStream แบบเรียกซ้ำ

static void applyPermission(File targetFile, CentralDirectoryInfo zipEntry)

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

static void closeZip(ZipFile zipFile)

ปิด ZipFile ที่เปิดอยู่ โดยไม่สนใจข้อยกเว้นใดๆ

static File createZip(File dir, String name)

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

static File createZip(File dir)

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

static File createZip(List<File> files)

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

static File createZip(List<File> files, String name)

เมธอดยูทิลิตีเพื่อสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่ระบุ

static void createZip(List<File> files, File zipFile)

เมธอดยูทิลิตีเพื่อสร้างไฟล์ ZIP ที่มีไฟล์ที่ระบุ

static void createZip(File dir, File zipFile)

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

static File extractFileFromZip(ZipFile zipFile, String filePath)

เมธอดยูทิลิตีเพื่อแยกไฟล์ที่เฉพาะเจาะจงออกจากไฟล์ ZIP ไปยังไฟล์ชั่วคราว

static void extractZip(ZipFile zipFile, File destDir)

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

static void extractZip(ZipFile zipFile, File destDir, Predicate<ZipEntry> shouldExtract)

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

static File extractZipToTemp(File zipFile, String nameHint)

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

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset, boolean useZip64)

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

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo)

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

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, boolean useZip64)

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

static List<CentralDirectoryInfo> getZipCentralDirectoryInfos(File partialZipFile, EndCentralDirectoryInfo endCentralDirInfo, long offset)

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

static void gzipFile(File file, File gzipFile)

เมธอดช่วยในการสร้างไฟล์เดียวในเวอร์ชันที่บีบอัดด้วย 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)

เครื่องมือสร้างสาธารณะ

ZipUtil

public ZipUtil ()

เมธอดสาธารณะ

addToZip

public static void addToZip (ZipOutputStream out, 
                File file, 
                List<String> relativePathSegs)

เพิ่มไฟล์ที่ระบุและเนื้อหาของไฟล์ลงใน ZipOutputStream แบบเรียกซ้ำ

พารามิเตอร์
out ZipOutputStream: ZipOutputStream

file File: File ที่จะเพิ่มลงในสตรีม

relativePathSegs List: เส้นทางแบบสัมพัทธ์ของไฟล์ รวมถึงตัวคั่น

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

applyPermission

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

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

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

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

ส่ง
IOException หากเข้าถึงไฟล์ไม่ได้

closeZip

public static void closeZip (ZipFile zipFile)

ปิด ZipFile ที่เปิดอยู่ โดยไม่สนใจข้อยกเว้นใดๆ

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

createZip

public static File createZip (File dir, 
                String name)

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

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

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

การคืนสินค้า
File ไฟล์ zip ชั่วคราว File ที่มีเนื้อหาไดเรกทอรี

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

createZip

public static File createZip (File dir)

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

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

การคืนสินค้า
File ไฟล์ zip ชั่วคราว File ที่มีเนื้อหาไดเรกทอรี

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

createZip

public static File createZip (List<File> files)

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

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

การคืนสินค้า
File ไฟล์ zip ชั่วคราว File ที่มีเนื้อหาไดเรกทอรี

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

createZip

public static File createZip (List<File> files, 
                String name)

เมธอดยูทิลิตีเพื่อสร้างไฟล์ ZIP ชั่วคราวที่มีไฟล์ที่ระบุ

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

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

การคืนสินค้า
File ไฟล์ zip ชั่วคราว File ที่มีเนื้อหาไดเรกทอรี

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

createZip

public static void createZip (List<File> files, 
                File zipFile)

เมธอดยูทิลิตีเพื่อสร้างไฟล์ ZIP ที่มีไฟล์ที่ระบุ

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

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

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

createZip

public static void createZip (File dir, 
                File zipFile)

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

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

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

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

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

เมธอดยูทิลิตีเพื่อแยกไฟล์ที่เฉพาะเจาะจงออกจากไฟล์ ZIP ไปยังไฟล์ชั่วคราว

พารามิเตอร์
zipFile ZipFile: ZipFile ที่จะแยก

filePath String: เส้นทางไฟล์ที่จะแตก

การคืนสินค้า
File File หรือ null หากไม่พบ

ส่ง
IOException หากแยกไฟล์ไม่สำเร็จ

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir)

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

พารามิเตอร์
zipFile ZipFile: ZipFile ที่จะแยก

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

ส่ง
IOException หากแยกไฟล์ไม่สำเร็จ

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir, 
                Predicate<ZipEntry> shouldExtract)

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

พารามิเตอร์
zipFile ZipFile: ZipFile ที่จะแยก

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

shouldExtract Predicate: เพรดิเคตเพื่อกำหนดว่าควรแยก ZipEntry หรือไม่

ส่ง
IOException หากแยกไฟล์ไม่สำเร็จ

extractZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

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

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

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

การคืนสินค้า
File File ชี้ไปยังไดเรกทอรีชั่วคราว

ส่ง
IOException
ZipException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset, 
                boolean useZip64)

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

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

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

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

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

การคืนสินค้า
List<CentralDirectoryInfo> รายการ CentralDirectoryInfo ของไฟล์ ZIP

ส่ง
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo)

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

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

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

การคืนสินค้า
List<CentralDirectoryInfo> รายการ CentralDirectoryInfo ของไฟล์ ZIP

ส่ง
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                boolean useZip64)

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

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

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

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

การคืนสินค้า
List<CentralDirectoryInfo> รายการ CentralDirectoryInfo ของไฟล์ ZIP

ส่ง
java.io.IOException
IOException

getZipCentralDirectoryInfos

public static List<CentralDirectoryInfo> getZipCentralDirectoryInfos (File partialZipFile, 
                EndCentralDirectoryInfo endCentralDirInfo, 
                long offset)

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

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

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

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

การคืนสินค้า
List<CentralDirectoryInfo> รายการ CentralDirectoryInfo ของไฟล์ ZIP

ส่ง
java.io.IOException
IOException

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

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

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

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

ส่ง
java.io.IOException
IOException

isZipFileValid

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

วิธีการยูทิลิตีเพื่อตรวจสอบว่าไฟล์ ZIP ไม่เสียหาย

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

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

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

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

unzipPartialZipFile

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: File ที่เป็นส่วนหนึ่งของไฟล์ ZIP

targetFile File: File ที่จะบันทึกไฟล์ที่แยกออกมา

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

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

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

ส่ง
java.io.IOException
IOException

unzipPartialZipFolder

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

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

พารามิเตอร์
targetFile File: File ที่จะบันทึกไฟล์ที่แยกออกมา

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

ส่ง
java.io.IOException
IOException

วิธีการที่ได้รับการป้องกัน

validateDestinationDir

protected static void validateDestinationDir (File destDir, 
                String filename)

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

filename String

ส่ง
IOException