Bonjour,
je cherche à créer un fichier zip qui porte comme nom la date courante, avec l'heure si-possible.
Pas de soucis pour créer mon zip, mais c'est au niveau du nommage que je bloque...
J' utilise la classe Date pour récupérer la date courante, et ensuite je supprime les espaces, mais le fichier ne se crée pas...
Et pourtant, aucune erreur ne m'est renvoyée.
Voici mon cote :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 public static void main(String[] args) { String date = new Date().toLocaleString().replace(" ", "_"); date += ".zip"; System.out.println(date); creerZip(date, "./WAS1"); } /** * crée un fichier Zip à partir d'un fichier ou d'un dossier indiqué en * paramètre. Si c'est un répertoire, la compression est aussi valable pour * les sous-dossiers. * * @param zipName * le nom du fichier Zip * @param chemin * emplacement du fichier ou du répertoire à zipper. */ public static void creerZip(String zipName, String chemin) { try { ZipOutputStream zip = new ZipOutputStream(new FileOutputStream( zipName)); zip.setMethod(ZipOutputStream.DEFLATED); zip.setLevel(Deflater.BEST_COMPRESSION); File dataDirectories = new File(chemin); zipDirectory(dataDirectories, zip); zip.close(); } catch (FileNotFoundException fileNotFound) { } catch (IOException io) { } } /** * fonction récursive asssurant la compression des fichiers à partir d'un * fichier zip. * * @param directory * le dossier à archiver * @param zip * le dosier zip */ static private void zipDirectory(File directory, ZipOutputStream zip) { String[] listFile = directory.list(); for (int i = 0; i < listFile.length; i++) { try { File file = new File(directory.getPath() + "/" + listFile[i]); if (file.isDirectory()) zipDirectory(file, zip); else { FileInputStream in = new FileInputStream(file); byte[] bytes = new byte[in.available()]; in.read(bytes); in.close(); ZipEntry entry = new ZipEntry(file.getPath()); entry.setTime(file.lastModified()); zip.putNextEntry(entry); zip.write(bytes); zip.closeEntry(); } } catch (FileNotFoundException fileNotFound) { } catch (IOException io) { } } }
Je pense que le souci vient du nom que je donne au FileOutputStream, puisque si je remplacepar
Code : Sélectionner tout - Visualiser dans une fenêtre à part creerZip(date, "./WAS1")tout fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part creerZip("monzip.zip","./WAS1");
Merci de votre aide.
Partager