Archiválás könyvtárak, zip

Java dolgozó fájlok mellett az általános funkcionalitást (olvasás, írás, stb) lehetővé teszi a használatát zip-archívumok. ZipInputStream és ZipOutputStream - Ehhez két osztályba kerülnek meghatározásra java.util.zip csomagot.

Sajnos, nem tudtam, hogy egy normál fájl orosz karakterek nevei fájlokat és könyvtárakat. Ezért, az I. példa használt könyvtárban apache-ant-zip.jar. amely sikeresen megoldja a fájlarchiválási kérdéseket a nevét, amely használja a cirill ábécét.

Példaként azt egy három szintű könyvtár szerkezete a következő:

Archiválás könyvtárak, zip

archiválási könyvtár

Ahhoz, hogy megfelelő kódolás az orosz neveket a fájlok a módszer példáját setEncoding osztály ZipOutputStream.

A példa egy rekurzív módszerrel addDirectory. Ez mtode hozzáadása után ZipEntry tárgy ZipOutputStream stream file rögzített tartalom. Erre a célra az írási módszer. felvétel áramban bájttömböt zout.write (puffer). A végén lezárt ZipEntry closeEntry () módszer.

A program eredményeként látható a konzolon:

unzipping könyvtár

A példában használt kicsomagoló olyan fájlt, amelyet az előző példában, könyvtár archívumában.

Csomagold eljárás bemenő paramétere megkapja az archív fájl. Zipfile lehetővé teszi, hogy minden „esemény” a könyvtárak és fájlok az archívumban. A tartalma a archív extraháljuk egy ciklusban.

A program eredményeként látható a konzolon:

A forráskód ezen példa arhivirirovaniya többszintű könyvtár formájában az Eclipse projekt fájl kicsomagolás itt tölthető le (56,6 MB). apache-hangya-zip.jar Könyvtár. A példákban használt szerepel a projektben.