Pakowanie folderów do zipa..

0

Witam,
Na stronie jest bardzo fajnie i przystępnie opisany proces pakowania plików jednak chciałem spakować też folder, niestety nie znalazłem info na ten temat.

Załóżmy, że mam pliki x1.txt, x2.txt i x3.txt:

  • Biorę sobie x1.txt i x2.txt i pakuje je do archiwum spakowane.zip
  • Teraz biorę x3.txt i chce to mieć w spakowane.zip/FOLDER

Nie umiałem niestety odszukać info na ten temat...

Chyba, że prostszym sposobem będzie mieć już plik x3.txt w folderze FOLDER i spakować do archiwum zip cały folder łącznie z jego zawartością??

Niestety nic nie wiem o pakowaniu folderów:(

Pozdrawiam :)

0

Jednocześnie przy okazji chciałem się dowiedzieć coś na temat usuwania plików za pomocą javy ? Jakie klasy do tego służą ?
Przypuśćmy, że robię sobie plik tymczasowy, który pakuje do zipa, a po spakowaniu chce go usunąć bo już mi nie jest potrzebny :)

Pozdrawiam ! :)

0

Drugie pytanie, do obsługi plików słuzy klasa File, w szczególnosci masz w niej metody
createTempFile(...) oraz deleteOnExit().

0

Co do pierwszego, to napisałeś

Na stronie jest bardzo fajnie ...
. Na stronie, tzn. gdzie?

0

Może tak dałoby radę:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Program {

	static public void main(String args[]) {
		final File inFolder = new File("j:\\folder");
		final File outFile = new File("j:\\folder.zip");
		final int bufferSize = 1024;
		ZipOutputStream zipOut = null;
		BufferedInputStream inStream = null;
		try {
			zipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(outFile)));
			byte[] data = new byte[bufferSize];
			String[] files = inFolder.list();
			for (String file : files) {
				inStream = new BufferedInputStream(new FileInputStream((inFolder.getPath() + "/" + file)), bufferSize);
				zipOut.putNextEntry(new ZipEntry(file));
				int count = 0;
				while((count = inStream.read(data)) != -1) {
					zipOut.write(data, 0, count);
				}
				zipOut.flush();
				zipOut.closeEntry();
			}
			System.out.println("Pakowanie plikow zakonczone powodzeniem !");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) { 
			e.printStackTrace();
		} finally {
			if(zipOut != null) {
				try {
					zipOut.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

0

wszystko zrobiłem.. nie było z tym wiele problemów na źródło dla zpa po prostu podawałem pliki beż ścieżki tylko same nazwy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1