Каковы эти поля в классах ZipFile и ZipEntry: CENATT, CENATX, CENCOM, CENCRC, CENDSK и т. Д.? - PullRequest
0 голосов
/ 02 июля 2019

Что это за поля в классах ZipFile и ZipEntry?

Javadoc ничего не говорит, и поиск в Google также не дает быстрых подсказок.

Полагаю, это что-то особенное в формате ZIP, но что именно?

static int  CENATT 
static int  CENATX 
static int  CENCOM 
static int  CENCRC 
static int  CENDSK 
static int  CENEXT 
static int  CENFLG 
static int  CENHDR 
static int  CENHOW 
static int  CENLEN 
static int  CENNAM 
static int  CENOFF 
static long CENSIG 
static int  CENSIZ 
static int  CENTIM 
static int  CENVEM 
static int  CENVER 
static int  DEFLATED    
static int  ENDCOM 
static int  ENDHDR 
static int  ENDOFF 
static long ENDSIG 
static int  ENDSIZ 
static int  ENDSUB 
static int  ENDTOT 
static int  EXTCRC 
static int  EXTHDR 
static int  EXTLEN 
static long EXTSIG 
static int  EXTSIZ 
static int  LOCCRC 
static int  LOCEXT 
static int  LOCFLG 
static int  LOCHDR 
static int  LOCHOW 
static int  LOCLEN 
static int  LOCNAM 
static long LOCSIG 
static int  LOCSIZ 
static int  LOCTIM 
static int  LOCVER 
static int  STORED

1 Ответ

1 голос
/ 02 июля 2019

Используйте вашу очень удобную IDE для просмотра исходного кода ZipConstants, и вы найдете:

/*
 * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package java.util.zip;

/*
 * This interface defines the constants that are used by the classes
 * which manipulate ZIP files.
 *
 * @author      David Connelly
 */
interface ZipConstants {
    /*
     * Header signatures
     */
    static long LOCSIG = 0x04034b50L;   // "PK\003\004"
    static long EXTSIG = 0x08074b50L;   // "PK\007\008"
    static long CENSIG = 0x02014b50L;   // "PK\001\002"
    static long ENDSIG = 0x06054b50L;   // "PK\005\006"

    /*
     * Header sizes in bytes (including signatures)
     */
    static final int LOCHDR = 30;       // LOC header size
    static final int EXTHDR = 16;       // EXT header size
    static final int CENHDR = 46;       // CEN header size
    static final int ENDHDR = 22;       // END header size

    /*
     * Local file (LOC) header field offsets
     */
    static final int LOCVER = 4;        // version needed to extract
    static final int LOCFLG = 6;        // general purpose bit flag
    static final int LOCHOW = 8;        // compression method
    static final int LOCTIM = 10;       // modification time
    static final int LOCCRC = 14;       // uncompressed file crc-32 value
    static final int LOCSIZ = 18;       // compressed size
    static final int LOCLEN = 22;       // uncompressed size
    static final int LOCNAM = 26;       // filename length
    static final int LOCEXT = 28;       // extra field length

    /*
     * Extra local (EXT) header field offsets
     */
    static final int EXTCRC = 4;        // uncompressed file crc-32 value
    static final int EXTSIZ = 8;        // compressed size
    static final int EXTLEN = 12;       // uncompressed size

    /*
     * Central directory (CEN) header field offsets
     */
    static final int CENVEM = 4;        // version made by
    static final int CENVER = 6;        // version needed to extract
    static final int CENFLG = 8;        // encrypt, decrypt flags
    static final int CENHOW = 10;       // compression method
    static final int CENTIM = 12;       // modification time
    static final int CENCRC = 16;       // uncompressed file crc-32 value
    static final int CENSIZ = 20;       // compressed size
    static final int CENLEN = 24;       // uncompressed size
    static final int CENNAM = 28;       // filename length
    static final int CENEXT = 30;       // extra field length
    static final int CENCOM = 32;       // comment length
    static final int CENDSK = 34;       // disk number start
    static final int CENATT = 36;       // internal file attributes
    static final int CENATX = 38;       // external file attributes
    static final int CENOFF = 42;       // LOC header offset

    /*
     * End of central directory (END) header field offsets
     */
    static final int ENDSUB = 8;        // number of entries on this disk
    static final int ENDTOT = 10;       // total number of entries
    static final int ENDSIZ = 12;       // central directory size in bytes
    static final int ENDOFF = 16;       // offset of first CEN header
    static final int ENDCOM = 20;       // zip file comment length
}
...