J'essaie d'utiliser la méthode renameTo en Java mais elle renvoie juste false et ne déplace pas le fichier.Java - méthode renameTo ne fonctionne pas
Ai-je manqué une étape? Existe-t-il un moyen de savoir pourquoi cela ne déplace pas le fichier? La méthode delete ne fait rien non plus.
Voici mon code montrant comment je l'utilise:
private void archiveOutputFile(File outputFile) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmssS");
String timeStamp = formatter.format(new Date());
String subFolderName = "Archive" + timeStamp;
File subFolder = new File(outputFile.getParent(),subFolderName);
subFolder.mkdir();
File newFile = new File(subFolder,outputFile.getName());
//outputFile.deleteOnExit(); //Doesn't work, nor does .delete()
boolean success = outputFile.renameTo(newFile);
}
Voici quelques informations système:
Java: 1.6.0_21; Client VM HotSpot (TM) VM 17.0-b17
Système: Windows XP version 5.1 s'exécutant sur x86; Cp1252; en_US (nb)
Le fichier est probablement verrouillé par le système d'exploitation. Avez-vous également créé le fichier dans votre code? Si oui, l'avez-vous 'close()' (ou le flux y écrivant)? –
Pouvez-vous confirmer que les anciens et les nouveaux fichiers se trouvent sur le même système de fichiers? –
@bart: Je n'ai pas de méthode de fermeture disponible sur le fichier. Je le passe à Weka pour analyser le fichier. Je dois supposer que Weka fermerait le fichier une fois que c'est fait. @Zach: Oui, ils sont sur le même système de fichiers. – Greg