Bonjour,
J'ai actuellement un problème bizarre et très dérangeant.
J'ai une méthode de test qui fait ceci :
1 2 3
| addFile("file.txt");
FileUtils.downloadFile("http://baptiste-wicht.developpez.com/dl.txt", getPath("file.txt")); |
getPath() donne juste l'adresse absolue du fichier tempoaire, ici /tmp/unit/file.txt
addFile("file.txt") fait ceci :
1 2 3 4 5 6 7 8 9
| file = new File(System.getProperty("java.io.tmpdir") + "/unit/", "file.txt")
try {
if(!file.createNewFile()){
fail("Unable to create the file {" + file.getAbsolutePath() + " }");
}
} catch (IOException e) {
fail("Unable to create the file {" + file.getAbsolutePath() + " } due to " + e.getMessage());
} |
et downloadFile() va télécharger un fichier et l'écrire sur le disque. L'opération d'écriture est faite ainsi :
1 2 3 4 5 6 7 8 9 10
| FileOutputStream destinationFile = null;
try {
destinationFile = new FileOutputStream(destination);
destinationFile.write(data);
destinationFile.flush();
} finally {
close(destinationFile);
} |
Sous Windows, ça fonction à merveille, mais sous Linux (Debian Stable) ou se trouve mon serveur d'intégration continue, impossible...
J'ai une exception sur cette ligne :
destinationFile = new FileOutputStream(destination);
L'existe indique :
java.io.FileNotFoundException: /tmp/unit/file.txt (Is a directory)
C'est comme s'il m'avait créé un dossier alors que j'ai bien spécifié createNewFile et que c'est /tmp/unit/file.txt...
Je vois pas pourquoi c'est un dossier 
Si quelqu'un avait une idée, ça m'arrangerait vraiment beaucoup
Partager