Problème de création de fichier sous Mac
Bonjour,
J'ai une exception quand je fais un "createNewFile" qui se produit sous Mac mais pas sous windows.
L'exception est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10
|
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at com.apologic.rcp.util.DesktopUtil.createFile(DesktopUtil.java:67)
at com.apologic.rcp.util.DesktopUtil.createFile(DesktopUtil.java:30)
at com.apologic.rcp.util.DesktopUtil.openAsposeExcel(DesktopUtil.java:177)
at com.apologic.rcp.swing.container.dialog.ExportSortableJDialog.valider(ExportSortableJDialog.java:452)
at com.apologic.rcp.swing.container.dialog.ExportSortableJDialog.bt_validerActionPerformed(ExportSortableJDialog.java:261)
... |
Voici le code de la méthode :
Code:
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
|
String chemin = repertoire + nom + tmp + extension;
File fichierTemp = new File(chemin);
//verifie si droit d'écriture
if (fichierTemp.exists() && !fichierTemp.canWrite()) {
continu = false;
}
//si fichier existe alors tente de le supprimer
if (continu && fichierTemp.exists()) {
//confirme remplacement
continu = Langue.getConfirm(null, Langue.getLabel("msg.container.file_doublon_replace") + "\n[" + fichierTemp.getPath() + "]");
if (continu && !fichierTemp.delete()) {
continu = false;
}
}
//tente de le creer
if (continu) {
try {
if (fichierTemp.createNewFile()) {
//supprime le fichier quand la JVM s'arrete
if (temp) {
fichierTemp.deleteOnExit();
}
fichier = fichierTemp;
} else {
if (fichierTemp.exists()) {
Langue.getMessageWarning(null, Langue.getLabel("msg.container.droit_repertoire") + repertoire);
} else {
Langue.getMessageWarning(null, Langue.getLabel("msg.container.droit_repertoire") + chemin);
}
}
} catch (IOException e) {
Langue.getMessageWarning(null, Langue.getLabel("msg.container.droit_repertoire") + repertoire);
}
} |
L'exception se produit sur "fichierTemp.createNewFile()".
Sous windows cela fonctionne sans problème. En revanche sous Mac, l'exception est générée.
J'ai essayé de lancer l'application en root mais le problème est le même.
J'ai également vérifié qu'aucun fichier du même nom n'existe, et que le répertoire est bien existant.
Quelqu'un a t-il déjà rencontré ce problème ? Serait-ce plus un problème de code ou par rapport au poste (droits, ...) ?
Merci