ZipUtil

public class ZipUtil
extends Object

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


Một lớp trợ giúp cho các thao tác liên quan đến việc nén

Tóm tắt

Hàm khởi tạo công khai

ZipUtil()

Phương thức công khai

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

Đệ quy thêm tệp đã cho và nội dung của tệp đó vào ZipOutputStream

static void applyPermission(File targetFile, CentralDirectoryInfo zipEntry)

Áp dụng quyền đối với tệp được định cấu hình trong mục nhập thư mục trung tâm.

static void closeZip(ZipFile zipFile)

Đóng một ZipFile đang mở, bỏ qua mọi trường hợp ngoại lệ.

static File createZip(File dir, String name)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa thư mục đã cho và tất cả nội dung của thư mục đó.

static File createZip(File dir)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa thư mục đã cho và tất cả nội dung của thư mục đó.

static File createZip(List<File> files)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa các tệp đã cho

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

Phương thức tiện ích để tạo một tệp zip tạm thời chứa các tệp đã cho.

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

Phương thức tiện ích để tạo một tệp zip chứa các tệp đã cho

static void createZip(File dir, File zipFile)

Phương thức tiện ích để tạo một tệp zip chứa thư mục đã cho và tất cả nội dung của thư mục đó.

static File extractFileFromZip(ZipFile zipFile, String filePath)

Phương thức tiện ích để trích xuất một tệp cụ thể từ tệp zip vào một tệp tmp

static void extractZip(ZipFile zipFile, File destDir)

Phương thức tiện ích để trích xuất toàn bộ nội dung của tệp zip vào thư mục đã cho

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

Phương thức tiện ích để trích xuất nội dung của tệp zip vào thư mục đã cho

static File extractZipToTemp(File zipFile, String nameHint)

Giải nén tệp zip vào một thư mục tạm thời có thêm một chuỗi ở đầu

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

static void gzipFile(File file, File gzipFile)

Phương thức trợ giúp để tạo phiên bản nén gzip của một tệp duy nhất.

static boolean isZipFileValid(File zipFile, boolean thorough)

Phương thức tiện ích để xác minh rằng tệp zip không bị hỏng.

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

Trích xuất một tệp được yêu cầu duy nhất từ một tệp zip một phần.

static void unzipPartialZipFolder(File targetFile, CentralDirectoryInfo zipEntry)

Trích xuất thư mục được yêu cầu từ một tệp zip một phần và áp dụng quyền thích hợp.

Phương thức được bảo vệ

static void validateDestinationDir(File destDir, String filename)

Hàm khởi tạo công khai

ZipUtil

public ZipUtil ()

Phương thức công khai

addToZip

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

Đệ quy thêm tệp đã cho và nội dung của tệp đó vào ZipOutputStream

Tham số
out ZipOutputStream: ZipOutputStream

file File: File cần thêm vào luồng

relativePathSegs List: đường dẫn tương đối của tệp, bao gồm cả dấu phân cách

Gửi
IOException nếu không thêm được tệp vào tệp zip

applyPermission

public static void applyPermission (File targetFile, 
                CentralDirectoryInfo zipEntry)

Áp dụng quyền đối với tệp được định cấu hình trong mục nhập thư mục trung tâm.

Tham số
targetFile File: File để đặt quyền.

zipEntry CentralDirectoryInfo: một đối tượng CentralDirectoryInfo chứa các quyền đối với tệp.

Gửi
IOException nếu không truy cập được vào tệp.

closeZip

public static void closeZip (ZipFile zipFile)

Đóng một ZipFile đang mở, bỏ qua mọi trường hợp ngoại lệ.

Tham số
zipFile ZipFile: tệp cần đóng

createZip

public static File createZip (File dir, 
                String name)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa thư mục đã cho và tất cả nội dung của thư mục đó.

Tham số
dir File: thư mục cần nén

name String: tên cơ sở của tệp zip được tạo mà không có đuôi.

Giá trị trả về
File một tệp zip tạm thời File chứa nội dung thư mục

Gửi
IOException nếu không tạo được tệp zip

createZip

public static File createZip (File dir)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa thư mục đã cho và tất cả nội dung của thư mục đó.

Tham số
dir File: thư mục cần nén

Giá trị trả về
File một tệp zip tạm thời File chứa nội dung thư mục

Gửi
IOException nếu không tạo được tệp zip

createZip

public static File createZip (List<File> files)

Phương thức tiện ích để tạo một tệp zip tạm thời chứa các tệp đã cho

Tham số
files List: danh sách các tệp cần nén

Giá trị trả về
File một tệp zip tạm thời File chứa nội dung thư mục

Gửi
IOException nếu không tạo được tệp zip

createZip

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

Phương thức tiện ích để tạo một tệp zip tạm thời chứa các tệp đã cho.

Tham số
files List: danh sách các tệp cần nén

name String: tên cơ sở của tệp zip được tạo mà không có đuôi.

Giá trị trả về
File một tệp zip tạm thời File chứa nội dung thư mục

Gửi
IOException nếu không tạo được tệp zip

createZip

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

Phương thức tiện ích để tạo một tệp zip chứa các tệp đã cho

Tham số
files List: danh sách các tệp cần nén

zipFile File: tệp zip cần tạo – tệp này không được tồn tại

Gửi
IOException nếu không tạo được tệp zip

createZip

public static void createZip (File dir, 
                File zipFile)

Phương thức tiện ích để tạo một tệp zip chứa thư mục đã cho và tất cả nội dung của thư mục đó.

Tham số
dir File: thư mục cần nén

zipFile File: tệp zip cần tạo – tệp này không được tồn tại

Gửi
IOException nếu không tạo được tệp zip

extractFileFromZip

public static File extractFileFromZip (ZipFile zipFile, 
                String filePath)

Phương thức tiện ích để trích xuất một tệp cụ thể từ tệp zip vào một tệp tmp

Tham số
zipFile ZipFile: ZipFile cần trích xuất

filePath String: filePath cần trích xuất

Giá trị trả về
File File hoặc giá trị rỗng nếu không tìm thấy

Gửi
IOException nếu không trích xuất được tệp

extractZip

public static void extractZip (ZipFile zipFile, 
                File destDir)

Phương thức tiện ích để trích xuất toàn bộ nội dung của tệp zip vào thư mục đã cho

Tham số
zipFile ZipFile: ZipFile cần trích xuất

destDir File: thư mục cục bộ để giải nén tệp

Gửi
IOException nếu không trích xuất được tệp

extractZip

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

Phương thức tiện ích để trích xuất nội dung của tệp zip vào thư mục đã cho

Tham số
zipFile ZipFile: ZipFile cần trích xuất

destDir File: thư mục cục bộ để giải nén tệp

shouldExtract Predicate: vị từ để xác định xem có nên trích xuất ZipEntry hay không

Gửi
IOException nếu không trích xuất được tệp

extractZipToTemp

public static File extractZipToTemp (File zipFile, 
                String nameHint)

Giải nén tệp zip vào một thư mục tạm thời có thêm một chuỗi ở đầu

Tham số
zipFile File: tệp zip cần giải nén

nameHint String: tiền tố cho thư mục tạm thời

Giá trị trả về
File File trỏ đến thư mục tạm thời

Gửi
IOException
ZipException

getZipCentralDirectoryInfos

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

Tham số
partialZipFile File: một đối tượng File của tệp zip một phần chứa các mục trong thư mục trung tâm.

endCentralDirInfo EndCentralDirectoryInfo: một đối tượng EndCentralDirectoryInfo của tệp zip.

offset long: độ lệch trong tệp zip một phần, nơi bắt đầu nội dung của các mục nhập thư mục trung tâm.

useZip64 boolean: một giá trị boolean để hỗ trợ định dạng zip64 trong quá trình tải xuống một phần.

Giá trị trả về
List<CentralDirectoryInfo> Danh sách CentralDirectoryInfo của tệp zip

Gửi
java.io.IOException
IOException

getZipCentralDirectoryInfos

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

Tham số
partialZipFile File: một đối tượng File của tệp zip một phần chứa các mục trong thư mục trung tâm.

endCentralDirInfo EndCentralDirectoryInfo: một đối tượng EndCentralDirectoryInfo của tệp zip.

Giá trị trả về
List<CentralDirectoryInfo> Danh sách CentralDirectoryInfo của tệp zip

Gửi
java.io.IOException
IOException

getZipCentralDirectoryInfos

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

Tham số
partialZipFile File: một đối tượng File của tệp zip một phần chứa các mục trong thư mục trung tâm.

endCentralDirInfo EndCentralDirectoryInfo: một đối tượng EndCentralDirectoryInfo của tệp zip.

useZip64 boolean: một giá trị boolean để hỗ trợ định dạng zip64 trong quá trình tải xuống một phần.

Giá trị trả về
List<CentralDirectoryInfo> Danh sách CentralDirectoryInfo của tệp zip

Gửi
java.io.IOException
IOException

getZipCentralDirectoryInfos

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

Lấy danh sách {link CentralDirectoryInfo} cho các tệp trong tệp zip.

Tham số
partialZipFile File: một đối tượng File của tệp zip một phần chứa các mục trong thư mục trung tâm.

endCentralDirInfo EndCentralDirectoryInfo: một đối tượng EndCentralDirectoryInfo của tệp zip.

offset long: độ lệch trong tệp zip một phần, nơi bắt đầu nội dung của các mục nhập thư mục trung tâm.

Giá trị trả về
List<CentralDirectoryInfo> Danh sách CentralDirectoryInfo của tệp zip

Gửi
java.io.IOException
IOException

gzipFile

public static void gzipFile (File file, 
                File gzipFile)

Phương thức trợ giúp để tạo phiên bản nén gzip của một tệp duy nhất.

Tham số
file File: tệp gốc

gzipFile File: tệp để đặt nội dung nén vào

Gửi
java.io.IOException
IOException

isZipFileValid

public static boolean isZipFileValid (File zipFile, 
                boolean thorough)

Phương thức tiện ích để xác minh rằng tệp zip không bị hỏng.

Tham số
zipFile File: File cần kiểm tra

thorough boolean: Có cố gắng trích xuất hoàn toàn tệp lưu trữ hay không. Nếu false, phương thức này sẽ không phát hiện được lỗi CRC trong một kho lưu trữ có cấu trúc hợp lệ.

Giá trị trả về
boolean false nếu tệp có vẻ bị hỏng; true nếu không

Gửi
IOException nếu không mở hoặc đọc được tệp

unzipPartialZipFile

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

Trích xuất một tệp được yêu cầu duy nhất từ một tệp zip một phần.

Phương thức này giả định rằng tất cả các tệp đều nằm trên cùng một đĩa khi được nén.

Nếu ERROR(/targetFile) là một thư mục, thì một thư mục trống sẽ được tạo mà không có nội dung.

Nếu ERROR(/targetFile) là một đường liên kết tượng trưng, thì một đường liên kết tượng trưng sẽ được tạo nhưng không được phân giải.

SDK này hiện chưa hỗ trợ các tính năng sau:

Tệp ZIP lớn hơn 4 GB

ZIP64(yêu cầu cập nhật ZipLocalFileHeader về kích thước nén)

Tệp zip đã mã hoá

Tham số
partialZip File: một File là một phần của tệp zip.

targetFile File: File để lưu tệp đã trích xuất vào.

zipEntry CentralDirectoryInfo: một đối tượng CentralDirectoryInfo của tệp cần trích xuất từ tệp zip một phần.

localFileHeader LocalFileHeader: một đối tượng LocalFileHeader của tệp cần trích xuất từ tệp zip một phần.

startOffset long: độ lệch bắt đầu của tệp cần trích xuất.

Gửi
java.io.IOException
IOException

unzipPartialZipFolder

public static void unzipPartialZipFolder (File targetFile, 
                CentralDirectoryInfo zipEntry)

Trích xuất thư mục được yêu cầu từ một tệp zip một phần và áp dụng quyền thích hợp.

Tham số
targetFile File: File để lưu tệp đã trích xuất vào.

zipEntry CentralDirectoryInfo: một đối tượng CentralDirectoryInfo của tệp cần trích xuất từ tệp zip một phần.

Gửi
java.io.IOException
IOException

Phương thức được bảo vệ

validateDestinationDir

protected static void validateDestinationDir (File destDir, 
                String filename)

Tham số
destDir File

filename String

Gửi
IOException