ZipUtil
public
class
ZipUtil
extends Object
| java.lang.Object
|
| ↳ |
com.android.tradefed.util.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 บางส่วนและใช้สิทธิ์ที่เหมาะสม
|
เครื่องมือสร้างสาธารณะ
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 ไม่สำเร็จ |
public static File extractFileFromZip (ZipFile zipFile,
String filePath)
เมธอดยูทิลิตีเพื่อแยกไฟล์ที่เฉพาะเจาะจงออกจากไฟล์ ZIP ไปยังไฟล์ชั่วคราว
| พารามิเตอร์ |
zipFile |
ZipFile: ZipFile ที่จะแยก |
filePath |
String: เส้นทางไฟล์ที่จะแตก |
| การคืนสินค้า |
File |
File หรือ null หากไม่พบ |
| ส่ง |
IOException |
หากแยกไฟล์ไม่สำเร็จ |
public static void extractZip (ZipFile zipFile,
File destDir)
เมธอดยูทิลิตีเพื่อแยกเนื้อหาทั้งหมดของไฟล์ ZIP ลงในไดเรกทอรีที่ระบุ
| พารามิเตอร์ |
zipFile |
ZipFile: ZipFile ที่จะแยก |
destDir |
File: ไดเรกทอรีในเครื่องที่จะแยกไฟล์ |
| ส่ง |
IOException |
หากแยกไฟล์ไม่สำเร็จ |
public static void extractZip (ZipFile zipFile,
File destDir,
Predicate<ZipEntry> shouldExtract)
วิธีการยูทิลิตีในการแยกเนื้อหาของไฟล์ ZIP ลงในไดเรกทอรีที่ระบุ
| พารามิเตอร์ |
zipFile |
ZipFile: ZipFile ที่จะแยก |
destDir |
File: ไดเรกทอรีในเครื่องที่จะแยกไฟล์ |
shouldExtract |
Predicate: เพรดิเคตเพื่อกำหนดว่าควรแยก ZipEntry หรือไม่ |
| ส่ง |
IOException |
หากแยกไฟล์ไม่สำเร็จ |
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 ในการดาวน์โหลดบางส่วน |
| ส่ง |
|
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 |
| ส่ง |
|
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 ในการดาวน์โหลดบางส่วน |
| ส่ง |
|
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 บางส่วนที่เนื้อหาของรายการไดเรกทอรีกลาง
เริ่มต้น |
| ส่ง |
|
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 |