Verrouillage de fichier et le supprimer
Je suis en train de faire un programme en java qui surveille et la sauvegarde d'un répertoire. De temps en temps, j'ai télécharger les fichiers modifiés dans le référentiel ou le télécharger si il y a une nouvelle version de celui-ci.
Pour ce faire, je dois verrouiller le fichier de sorte que l'utilisateur ne peut pas modifier le contenu ou de le supprimer.
Actuellement, je suis en utilisant ce code pour verrouiller le fichier:
file = new RandomAccessFile("C:\\Temp\\report.txt", "rw");
FileChannel fileChannel = file.getChannel();
fileLock = fileChannel.tryLock();
if (fileLock != null) {
System.out.println("File is locked");
try{
//Do what i need
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
else{
System.out.println("Failed");
}
} catch (FileNotFoundException e) {
System.out.println("Failed");
}finally{
if (fileLock != null){
fileLock.release();
}
Cependant, si il ya une nouvelle version que j'ai supprimer l'ancien fichier et de le remplacer par un nouveau.
Mais de verrouillage de Fichier ne me permet pas de supprimer le fichier.
Dois-je déverrouiller et supprimer écrire à l'écart, dans la confiance que l'utilisateur a l'habitude d'écrire dans le fichier? Ou est-il un autre moyen de faire cela?
OriginalL'auteur user1308768 | 2012-06-24
Vous devez vous connecter pour publier un commentaire.
Vous pourrait tronquer le fichier:
et ensuite écrire la nouvelle version par dessus, ce ne serait pas de créer de l'intervalle de temps dans lequel l'utilisateur peut créer le fichier.
À partir de la documentation:
http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html#truncate%28long%29
Je viens d'ajouter des explications supplémentaires... s'il vous plaît laissez-moi savoir si vous avez besoin de plus de précisions.
ah ok. C'est en effet une solution. Ce que j'avais en tête c'était de l'opération de déplacement (docs.oracle.com/javase/7/docs/api/java/nio/file/...), car il est plus rapide que de copier le contenu du fichier. Mais jusqu'à présent, ce que vous c'est la meilleure solution
OriginalL'auteur Francisco Spaeth