J'ai rencontré un problème étrange lors de l'utilisation de renameTo(). Je ne sais pas pourquoi je ne peux pas renommer en /mnt/desttest
mais il est possible de le renommer en /home/kit.ho/desttest
. Cependant, j'ai déjà donné à tous les droits d'écriture sur /mnt/. La valeur de retour est false sans raison particulière. Qui connaît la raison ?
import java.io.File;
public class renameFile {
public static void main(String[] args) {
File sourceFile = new File("/home/kit.ho/test");
File targetFile1 = new File("/mnt/desttest");
System.out.println("source file is exist? " + sourceFile.exists() + ", source file => " + sourceFile);
System.out.println(targetFile1 + " is exist? " + targetFile1.exists());
System.out.println("rename to " + targetFile1 + " => " + sourceFile.renameTo(targetFile1));
System.out.println("source file is exist? " + sourceFile.exists() + ", source file => " + sourceFile);
}
}
Edit : Enfin, d'après certaines réponses, la fonction Rename ne fonctionne pas sur les systèmes de fichiers croisés. Existe-t-il un moyen de contourner ce problème en n'appelant pas de commande externe telle que "mv" ?