La copie d'un fichier à l'aide de FileUtils.copyFile
Je suis en train de copier des fichiers en utilisant le fichier utils copie du fichier de la méthode. Je suis en cours d'exécution à certaines questions où une exception est parfois jeté
java.io.IOException: Failed to copy full contents from 'path.xml' to localfile.xml
J'ai googlé et vu dans le code que cette exception est levée lorsque la cible de la longueur du fichier est différente de la destination de la longueur du fichier, La seule exception est, à certains moments, ce qui pourrait être dû au fait que le fichier que je suis en train de copie est toujours mise à jour et j'ai pu l'attraper à la mi-mise à jour(juste un fichier xml avec l'évolution des valeurs)
Si je encapsuler l'appel à un if(target.canRead())
mais ce qui semble faire peu de différence.
Peut aider quelqu'un?
*mise à jour:*je ne peut pas verrouiller le fichier tel qu'il est en cours d'écriture par l'intermédiaire d'un fournisseur tiers, ce serait causer toutes sortes de problèmes.
pourquoi utiliser que sur fileutils?
parce qu'il a les Fichiers.copier(src,dest) de la méthode et Google Goyave bibliothèque et je l'utilise dans tous les projets Java , n'a pas trouvé de problèmes jusqu'à présent.
La vraie question est de savoir pourquoi êtes-vous de la copie d'un fichier qui est encore en cours d'écriture?
OriginalL'auteur Biscuit128 | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de savoir comment l'architecture est mise en œuvre dans votre projet, mais vous devriez avoir un mécanisme de verrouillage sur le fichier.
Quand quelqu'un écrit sur le fichier il doit verrouiller. Et vous ne devriez pas être la copie de ses écrits, c'est à dire qu'il est verrouillé.
Le voir, cette question ici sur la façon de verrouiller un fichier en java.
Mise à JOUR
Vous sont ensuite laissés sans option mais de mettre en œuvre méthode de copie de vous-même ou utiliser une bibliothèque qui n'ont pas un test similaire.
Vous pouvez voir le code de FileUtils
Il va donner d'erreur si des modifications de fichiers lors de la copie.
OriginalL'auteur Subir Kumar Sao
J'ai le même problème (avec de gros fichiers) résolu à l'aide des Fichiers en Java 7 :
OriginalL'auteur Elkaddari
Bien comme vous l'avez dit, le fichier peut être mis à jour au cours de votre processus de copie, de sorte que vous devriez être nécessaires pour obtenir un fichier verrou sur le fichier que vous souhaitez copier.
Je suggère la lecture de cette question pour obtenir des informations détaillées de la façon d'utiliser
FileLock
.OriginalL'auteur Michael Rose