ZIP Archive erstellen - ich möchte aber nur den jeweiligen Ordner zippen, bekomme ganzen Pfad

internet

Top Contributor
Hallo zusammen,

ich möchte gerne immer nur den Ordner zippen, den ich angebe.
Das Zippen funktioniert einwandfrei. Allerdings enthält das ZIP-Archiv nun Ordner, (die übergeordnete Ordner meines angegebenen Verzeichnis)
=> Ich möchte aber wirklich nur den Ordner Zippen, den ich angebe.
Bsp: Ordner "test"

Ich bekomme aber "Application/Standalone/test/"

Wie kann ich das machen?

Hier mein Code:

Java:
	public boolean createZIPArchiveFullBackUp(File directory) {
		boolean result = false;

		byte[] buffer = new byte[8192];

		try {

			LinkedList<String> fileList = getAllFiles(directory);

			// /
			String tempFolderPath = System.getProperty("jboss.server.temp.dir");
			String path = tempFolderPath + File.separator;
			// //

			String outFilename = path + "outfile.zip";
			FileOutputStream fos = new FileOutputStream(outFilename);
			ZipOutputStream zos = new ZipOutputStream(fos);

			for (String fileName : fileList) {

				FileInputStream fis = new FileInputStream(fileName);
				zos.putNextEntry(new ZipEntry(fileName));
				

				int length;
				while ((length = fis.read(buffer)) > 0) {
					zos.write(buffer, 0, length);
				}

				zos.closeEntry();
				fis.close();
			}

			zos.close();
			fos.close();

			result = true;

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return result;
	}
	
	/**
	 * Methode legt alle Datei-Pfade in einer LinkedList ab - mit allen
	 * Unterordnern
	 * 
	 * @param files
	 * @return
	 */
	private static LinkedList<String> getAllFiles(File directory) {

		File[] files = directory.listFiles();
		LinkedList<String> allFiles = new LinkedList<String>();

		for (File file : files) {
			if (file.isDirectory()) {
				LinkedList<String> moreFiles = getAllFiles(file);
				Iterator<String> iterMoreFiles = moreFiles.iterator();
				while (iterMoreFiles.hasNext()) {
					allFiles.add(iterMoreFiles.next());
				}

			} else {
				allFiles.add(file.getAbsolutePath());
			}
		}

		return allFiles;
	}
 

Zurück
Oben