Y at-il une bibliothèque Java standard qui gère des opérations de fichiers courantes telles que déplacer/copier les fichiers/dossiers ?
Réponses
Trop de publicités?Pas encore, mais la Nouvelle NIO (JSR 203) prend en charge ces opérations.
Dans l'intervalle, il ya quelques choses à garder à l'esprit.
Fichier.renameTo généralement ne fonctionne que sur le même volume de système de fichiers. Je pense que de ce que l'équivalent d'un "mv" de commande. Utilisez si vous le pouvez, mais pour le général de copier et de déplacer de l'aide, vous aurez besoin d'avoir une solution de repli.
Quand un changement de nom ne fonctionne pas, vous devrez copier le fichier (suppression de l'original avec Fichier.supprimer si c'est un "déplacement" de l'opération). Pour ce faire, avec le plus d'efficacité, utilisez le FileChannel.transferTo ou FileChannel.transferFrom méthodes. La mise en œuvre de la plate-forme, mais en général, lors de la copie d'un fichier à un autre, les implémentations d'éviter le transport des données en arrière-et-vient entre le noyau et l'espace utilisateur, ce qui donne un gros boost de l'efficacité.
Consultez : http://commons.apache.org/io/
Il a copie, et comme il est indiqué le JDK a déjà déplacer.
N’implémentez votre propre méthode de copie. Il y a tant de flottant là-bas...
Les réponses précédentes semblent être dépassées.
Java Fichier.renameTo() est probablement la solution la plus simple pour API 7, et semble bien fonctionner. Attention, IL NE jette PAS des EXCEPTIONS, mais renvoie la valeur vrai/faux!!!
Note qu'il semble y avoir des problèmes avec elle dans les versions précédentes (le même que NIO).
Si vous avez besoin d'utiliser une version précédente, cochez ici.
Here's an example for API7:
File f1= new File("C:\\Users\\.....\\foo");
File f2= new File("C:\\Users\\......\\foo.old");
System.err.println("Result of move:"+f1.renameTo(f2));
Sinon:
System.err.println("Move:" +f1.toURI() +"--->>>>"+f2.toURI());
Path b1=Files.move(f1.toPath(), f2.toPath(), StandardCopyOption.ATOMIC_MOVE ,StandardCopyOption.REPLACE_EXISTING ););
System.err.println("Move: RETURNS:"+b1);
Bibliothèque de goyave de Google a également ceux-ci :
http://Guava-Libraries.googlecode.com/SVN/Trunk/javadoc/com/Google/common/IO/files.html