Avatar billede ppstyle Nybegynder
04. juli 2001 - 12:41 Der er 5 kommentarer og
1 løsning

Zipning af flere filer...

Er der nogen, der kan give et kode eksempel på zipning af fx. 2 filer : test1.txt og test2.lkh ?

Programmet skal skrive en zip fil til samme bibliotek, hvor de to ovenstående filer ligger.

Kan man bruge pipedin og pipedout ?

Mange hilsner Daniel.
Avatar billede kasseper Nybegynder
04. juli 2001 - 12:45 #1
lytter 8)
Avatar billede elster Nybegynder
04. juli 2001 - 20:19 #2
Du kan benytte nedenstående klasse:

---------------------------------------------

/**
* Java provides classes for compressing and uncompressing byte
* streams. These are found in the java.util.zip package, and also
* serve as the basis for Jar files (a Jar file is a Zip file with an
* added manifest).
* The following program takes multiple input files, and writes a
* compressed output Zip file, with an entry representing each
* input file:
*/

import java.io.*;
import java.util.zip.*;
 
  public class CompressZip {
    public static void doit(
                            String[] filesin,
                            String fileout
                            ) {
      FileInputStream fis = null;
      FileOutputStream fos = null;
      try {
        fos = new FileOutputStream(fileout);
        ZipOutputStream zos = new ZipOutputStream(fos);
        for (int i = 0; i < filesin.length; i++) {
            fis = new FileInputStream(filesin[i]);
            ZipEntry ze = new ZipEntry(/*\"TEST\\\\prut.jar\"*/filesin[i]);
            zos.putNextEntry(ze);
            final int BUFSIZ = 4096;
            byte inbuf[] = new byte[BUFSIZ];
            int n;
            while ((n = fis.read(inbuf)) != -1)
            zos.write(inbuf, 0, n);
            fis.close();
            fis = null;
        }
        zos.close();
        fos = null;       
      }
      catch (IOException e) {
        System.err.println(e);
      }
      finally {
        try {
          if (fis != null)
            fis.close();
          if (fos != null)
            fos.close();
        }
        catch (IOException e) {
        }
      }
    }
}

---------------------------------------------

Eksempel:

\' Array med filer der skal pakkes
String[] files = {\"test1.txt\",\"test2.lkh\"};
\' Navn på zip fil der skal oprettes
String zipFile = \"test.zip\";
\' Pak filerne
CompressZip.doit(files, zipFile);



Avatar billede ppstyle Nybegynder
05. juli 2001 - 00:15 #3
ok Elster, det ser spændende ud, jeg tester lige og vender tilbage snarest. Men mange tak indtil nu.

Jeg accepterer dit svar imorgen hvis det virker, plus du få en masse street-respect her ude fra Amager ;=)
Avatar billede elster Nybegynder
05. juli 2001 - 11:51 #4
OK, det får du så også her på fredriksberg..
Avatar billede ppstyle Nybegynder
06. juli 2001 - 17:46 #5
Totalt street respect :)

Skidtet funker, jeg har stort set lavet samme kode, men lagde filerne ned i et byte array først. Det var sandsynligvis fejlen.

Anyway way god weekend og mange tak for hjælpen.
Avatar billede elster Nybegynder
07. juli 2001 - 13:54 #6
Kodylt ppstyle, det var ingen årsag! Ha\' en rigtig god weekend.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester