Bonjour ,
Comme vous l'avez devinez j'ai un problème !
Je suis actuellement en train de migrer du code vers NIO2.
En suivant en suivant les conseils du cours Java de JM Doudoux (merci à lui ) pour créer un nouveau fichier zip.
J'ai besoin d'une URI :
1 2 3 4 5 6
| private static FileSystem creerZipFileSystem(Path zipFile) throws IOException {
final URI uri = URI.create("jar:file:" + zipFile.toUri().getPath());
final Map<String, String> env = new HashMap<>();
env.put("create", "true");
return FileSystems.newFileSystem(uri, env);
} |
J'ai donc un bloque de teste qui appelle cette fonction:
1 2
| String filePath = "C:\\Mon\\Chemin\\Avec des\\espaces\\Vers le\\FichierACree.zip";
creerZipFileSystem(Paths.get(outputFakeVendorFile)); |
mais dans ce cas la je me ramasse un jolie erreure du type
Illegal character in opaque part at index 28: jar:file:/C:/Mon/Chemin/Avec des/espaces/Vers le/FichierACree.zip
J'ai donc tenter une approche latéralisante du problème (effectivement cette phrase n'as aucun sens)
en utilisant le constructeur
URI(String scheme, String host, String path, String fragment)
ce qui donne le code suivant:
1 2 3 4 5 6
| private static FileSystem creerZipFileSystem(Path zipFile) throws IOException {
final URI uri = new URI("jar:file", null, zipFile.toUri().getPath().toString(), null);
final Map<String, String> env = new HashMap<>();
env.put("create", "true");
return FileSystems.newFileSystem(uri, env);
} |
et cette fois c'est au niveau du return de ma fonction «creerZipFileSystem» que je me heurte à l'erreure:
Illegal character in path at index 24: file:/C:/Mon/Chemin/Avec des/espaces/Vers le/FichierACree.zip
je pense donc que ça viens d'une mauvaise utilisation de ma part des URI*mais c'est la première fois que j'en utilise, et malgres mes divers autres tentative je ne suis arrivé à rien.
Donc si vous avez des conseil n'hésitez pas
D'avance merci bien
Partager