Révision 2482
tmp/org.txm.utils/src/org/txm/utils/zip/Zip.java (revision 2482) | ||
---|---|---|
70 | 70 |
* Signals that an I/O exception has occurred. |
71 | 71 |
*/ |
72 | 72 |
public static void compress(final File file) throws IOException { |
73 |
compress(file, file, DEFAULT_LEVEL_COMPRESSION, null); |
|
73 |
compress(file, file, DEFAULT_LEVEL_COMPRESSION, null, null);
|
|
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
/** |
... | ... | |
84 | 84 |
* Signals that an I/O exception has occurred. |
85 | 85 |
*/ |
86 | 86 |
public static void compress(final File file, final File target) throws IOException { |
87 |
compress(file, target, DEFAULT_LEVEL_COMPRESSION, null); |
|
87 |
compress(file, target, DEFAULT_LEVEL_COMPRESSION, null, null);
|
|
88 | 88 |
} |
89 | 89 |
|
90 | 90 |
/** |
... | ... | |
97 | 97 |
* @throws IOException |
98 | 98 |
* Signals that an I/O exception has occurred. |
99 | 99 |
*/ |
100 |
public static void compress(final File file, final File targetZipFile, IProgressMonitor monitor) throws IOException { |
|
101 |
compress(file, targetZipFile, DEFAULT_LEVEL_COMPRESSION, monitor); |
|
100 |
public static void compress(final File file, final File targetZipFile, IProgressMonitor monitor, HashSet<String> ignore) throws IOException {
|
|
101 |
compress(file, targetZipFile, DEFAULT_LEVEL_COMPRESSION, monitor, ignore);
|
|
102 | 102 |
} |
103 | 103 |
|
104 | 104 |
// Compresse un fichier à l'adresse pointée par le fichier cible. |
... | ... | |
116 | 116 |
* @throws IOException |
117 | 117 |
* Signals that an I/O exception has occurred. |
118 | 118 |
*/ |
119 |
public static void compress(final File file, final File targetZipFile, final int compressionLevel, IProgressMonitor monitor) throws IOException { |
|
119 |
public static void compress(final File file, final File targetZipFile, final int compressionLevel, IProgressMonitor monitor, HashSet<String> ignore) throws IOException {
|
|
120 | 120 |
final File source = file.getCanonicalFile(); |
121 | 121 |
|
122 | 122 |
// Création du fichier zip |
... | ... | |
125 | 125 |
out.setLevel(compressionLevel); |
126 | 126 |
|
127 | 127 |
// Ajout du(es) fichier(s) au zip |
128 |
compressFile(out, "", source, monitor); |
|
128 |
compressFile(out, "", source, monitor, ignore);
|
|
129 | 129 |
out.close(); |
130 | 130 |
} |
131 | 131 |
|
... | ... | |
140 | 140 |
* Signals that an I/O exception has occurred. |
141 | 141 |
*/ |
142 | 142 |
public static void compress(final File file, final int compressionLevel) throws IOException { |
143 |
compress(file, file, compressionLevel, null); |
|
143 |
compress(file, file, compressionLevel, null, null);
|
|
144 | 144 |
} |
145 | 145 |
|
146 | 146 |
/** |
... | ... | |
152 | 152 |
* Signals that an I/O exception has occurred. |
153 | 153 |
*/ |
154 | 154 |
public static void compress(final String fileName) throws IOException { |
155 |
compress(new File(fileName), new File(fileName), DEFAULT_LEVEL_COMPRESSION, null); |
|
155 |
compress(new File(fileName), new File(fileName), DEFAULT_LEVEL_COMPRESSION, null, null);
|
|
156 | 156 |
} |
157 | 157 |
|
158 | 158 |
/** |
... | ... | |
166 | 166 |
* Signals that an I/O exception has occurred. |
167 | 167 |
*/ |
168 | 168 |
public static void compress(final String fileName, final int compressionLevel) throws IOException { |
169 |
compress(new File(fileName), new File(fileName), compressionLevel, null); |
|
169 |
compress(new File(fileName), new File(fileName), compressionLevel, null, null);
|
|
170 | 170 |
} |
171 | 171 |
|
172 | 172 |
/** |
... | ... | |
180 | 180 |
* Signals that an I/O exception has occurred. |
181 | 181 |
*/ |
182 | 182 |
public static void compress(final String fileName, final String targetName) throws IOException { |
183 |
compress(new File(fileName), new File(targetName), DEFAULT_LEVEL_COMPRESSION, null); |
|
183 |
compress(new File(fileName), new File(targetName), DEFAULT_LEVEL_COMPRESSION, null, null);
|
|
184 | 184 |
} |
185 | 185 |
|
186 | 186 |
/** |
... | ... | |
196 | 196 |
* Signals that an I/O exception has occurred. |
197 | 197 |
*/ |
198 | 198 |
public static void compress(final String fileName, final String targetName, final int compressionLevel) throws IOException { |
199 |
compress(new File(fileName), new File(targetName), compressionLevel, null); |
|
199 |
compress(new File(fileName), new File(targetName), compressionLevel, null, null);
|
|
200 | 200 |
} |
201 | 201 |
|
202 | 202 |
/** |
... | ... | |
211 | 211 |
* @throws IOException |
212 | 212 |
* Signals that an I/O exception has occurred. |
213 | 213 |
*/ |
214 |
private final static void compressFile(final ZipOutputStream out, final String parentFolder, final File file, IProgressMonitor monitor) throws IOException { |
|
214 |
private final static void compressFile(final ZipOutputStream out, final String parentFolder, final File file, IProgressMonitor monitor, HashSet<String> ignore) throws IOException {
|
|
215 | 215 |
final String zipName = new StringBuilder(parentFolder).append(file.getName()).append(file.isDirectory() ? '/' : "").toString(); |
216 | 216 |
|
217 | 217 |
// Définition des attributs du fichier |
... | ... | |
228 | 228 |
if (monitor != null) |
229 | 229 |
monitor.beginTask("Compressing " + file + " directory (" + files.length + " files).", files.length); |
230 | 230 |
for (final File f : files) { |
231 |
compressFile(out, zipName.toString(), f, null); |
|
232 |
if (monitor != null) |
|
231 |
if (ignore != null && ignore.contains(f.getName())) { |
|
232 |
// continue; // file is ignored |
|
233 |
} else { |
|
234 |
compressFile(out, zipName.toString(), f, null, null); |
|
235 |
} |
|
236 |
|
|
237 |
if (monitor != null) { |
|
233 | 238 |
monitor.worked(1); |
239 |
} |
|
234 | 240 |
} |
235 | 241 |
if (monitor != null) |
236 | 242 |
monitor.done(); |
Formats disponibles : Unified diff