Mercurial > dive4elements > framework
comparison artifacts-common/src/main/java/org/dive4elements/artifacts/common/utils/FileTools.java @ 482:dd412faf7b4d
Framework: Added FileFilter to ZIP file creation.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 07 May 2013 11:45:47 +0200 |
parents | 415df0fc4fa1 |
children | 584591f8203c |
comparison
equal
deleted
inserted
replaced
479:b8067c6f67f6 | 482:dd412faf7b4d |
---|---|
7 */ | 7 */ |
8 package org.dive4elements.artifacts.common.utils; | 8 package org.dive4elements.artifacts.common.utils; |
9 | 9 |
10 import java.io.BufferedInputStream; | 10 import java.io.BufferedInputStream; |
11 import java.io.File; | 11 import java.io.File; |
12 import java.io.FileFilter; | |
12 import java.io.IOException; | 13 import java.io.IOException; |
13 import java.io.InputStream; | 14 import java.io.InputStream; |
14 import java.io.FileInputStream; | 15 import java.io.FileInputStream; |
15 import java.io.FileOutputStream; | 16 import java.io.FileOutputStream; |
16 import java.io.OutputStream; | 17 import java.io.OutputStream; |
311 } | 312 } |
312 } | 313 } |
313 | 314 |
314 return file.delete(); | 315 return file.delete(); |
315 } | 316 } |
317 public static final FileFilter ACCEPT_ALL = new FileFilter() { | |
318 @Override | |
319 public boolean accept(File file) { | |
320 return true; | |
321 } | |
322 }; | |
323 | |
324 public static void createZipArchive( | |
325 File file, | |
326 OutputStream outputStream | |
327 ) | |
328 throws IOException | |
329 { | |
330 createZipArchive(file, outputStream, ACCEPT_ALL); | |
331 } | |
316 | 332 |
317 /** | 333 /** |
318 * Put the given file or directory into a zip archive. | 334 * Put the given file or directory into a zip archive. |
319 * | 335 * |
320 * @param file The file or directory. | 336 * @param file The file or directory. |
322 * @throws IOException if an error occured while zip creation or writing to | 338 * @throws IOException if an error occured while zip creation or writing to |
323 * output stream. | 339 * output stream. |
324 */ | 340 */ |
325 public static void createZipArchive( | 341 public static void createZipArchive( |
326 File file, | 342 File file, |
327 OutputStream outputStream | 343 OutputStream outputStream, |
344 FileFilter filter | |
328 ) | 345 ) |
329 throws IOException | 346 throws IOException |
330 { | 347 { |
331 ZipOutputStream out = new ZipOutputStream(outputStream); | 348 ZipOutputStream out = new ZipOutputStream(outputStream); |
332 | 349 |
333 if (file.isFile()) { | 350 if (filter.accept(file) && file.isFile()) { |
334 copyFileToZip("", file, out); | 351 copyFileToZip("", file, out); |
335 } | 352 } |
336 else if (file.isDirectory()) { | 353 else if (file.isDirectory()) { |
337 | 354 |
338 Deque<PrefixDir> stack = new ArrayDeque<PrefixDir>(); | 355 Deque<PrefixDir> stack = new ArrayDeque<PrefixDir>(); |
343 | 360 |
344 ZipEntry dirEntry = new ZipEntry(pd.prefix); | 361 ZipEntry dirEntry = new ZipEntry(pd.prefix); |
345 out.putNextEntry(dirEntry); | 362 out.putNextEntry(dirEntry); |
346 out.closeEntry(); | 363 out.closeEntry(); |
347 | 364 |
348 File [] files = pd.dir.listFiles(); | 365 File [] files = pd.dir.listFiles(filter); |
349 if (files != null) { | 366 if (files != null) { |
350 for (File sub: files) { | 367 for (File sub: files) { |
351 if (sub.isDirectory()) { | 368 if (sub.isDirectory()) { |
352 stack.push(new PrefixDir( | 369 stack.push(new PrefixDir( |
353 pd.prefix + sub.getName() + "/", | 370 pd.prefix + sub.getName() + "/", |