Bonjour,
est-il possible de savoir si un fichier est déja ouvert par queqlqu'un ?
Je voudrais pouvoir créer un """editeur""" qui ne permet pas de modifier un fichier si il est déja ouvert par quelqu'un d'autre
Version imprimable
Bonjour,
est-il possible de savoir si un fichier est déja ouvert par queqlqu'un ?
Je voudrais pouvoir créer un """editeur""" qui ne permet pas de modifier un fichier si il est déja ouvert par quelqu'un d'autre
Bonjour,
Deja tu pourrais indiquer l'OS que tu utilise ? sous Linux ou Windows, la gestion des fichiers est tres differente...
Sous windows (je m'y connais pas trop en linux, mais je penses qu'il y a moyen de faire des appels au systeme de verrouillage...) ce n'est pas possible a ma connaissance en n'utilisant que java...
Si je comprends bien, tu veux verifier que ton fichier n'est pas deja ouvert par n'importe quelle application, c'est bien ca ? Ou bien juste pas deja ouvert par une instance de ton editeur ?
Si c'est le premier cas, tu peux jetter un coup d'oeil a la classe FileLock, qui permet de creer des verroux exclusifs sur des fichiers via des appels au systeme de fichier de l'OS. Je penses que cette classe te permettra de resoudre des problemes...
En esperant t'avoir aide,
Bonne journee,
Gormaz
Bonjour,
EN fait des collégues doivent développer un Intranet en Java mais ils n'ont aucunes ressources à leur disposition. Ils ont du partager la racine du serveur et vont y placer à la main leurs dernieres sources et donc editer souvent le fichier web.xml
Je voudrais donc créer une Applet qui permet d'éditer le fichier Web.xml (ou autres) en étant sur que personne d'autre ne pourras l'ouvrir avec cette même Applet..
8OCitation:
Envoyé par Blaise1
CVS (+Eclipse) ?!...
Oui je sais mais on ne peux pas !
Oui ça fait trés bizarre hein je sais mais bon, c'est pas moi le chef..
Ils doivent vraiment se débrouiller avec juste eclipse-wtp.
Alors ils se sont qd même installé un serveur de developpement ou ils ont paratagé la recine du projet.
Pour les source sça devrait aller si ils ne travaillent pas tous sur la même mais le Web.xml lui est trés souvent modifier donc pour éviter des écrasement j'aimerais bien leur faire ça..
Puis comme ça je saurais le faire et ca peux tjs être utile..
Comme je le fichier web.xml doit-être lisible par tous en dehors de l'éditeur, je en epux pas utiliser de RandomAccessFile car writeChars(String s) place autre chose entre mes caractères.. et writeUTF() fait pareil
Bon ben la je me suis contenter d'un fichier marqueur..
Bonjour,
hum, tu as regarde le FileLock ?
Ca peut peut-etre repondre a ton probleme non ?
Sinon je penses que la creation d'un fichier marqueur est surement la solution la plus simple et la plus efficace pour toi...
Quand un de tes collegues ouvre le fichier, tu en crees un autre, vide dans le meme repertoire pour indiquer qu'il est verrouiller... et tu testes lors des tentatives d'ouverture suivantes pour savoir si le fichier existe...
Si oui, tu indique que le fichier est ouvert en mode lecture seul et tu empeches les modifications
Si non, tu crees le fichier et tu l'ouvres en mode edition...
A plus,
Gormaz
Salut,
bien à toiCode:
1
2
3
4
5
6
7
8
9 File f=new File(path); if(f.canWrite()) // si on peut écrire dedans { /* tes modifications */ } else { /* message d'erreur ? */ }
mavina
Salut,
je ne suis pas sur que l'utilisation de la methode canWrite suffise
La methode canWrite d'apres mon experience verifies juste que tu disposes des droits d'ecriture sur le fichier or, et sous Windows en particulier, le fait que le fichier soit deja ouvert par une autre application ne t'enleve en rien ton autorisation a ecrire dans ce fichier...
La on parles vraiment d'empecher un acces concurentiel, canWrite est plus dans les cas ou les acces aux fichiers sont restreints (par des droits administrateurs ou autres par exemple)
Gormaz
Oui tout à fait, j'avait éssayé avant de poster ma question.Citation:
Envoyé par Gormaz
Salut,
Il n'y a rien qui te permette de vérifier si un autre processus a ouvert le fichier si ce processus ne met pas le fichier en read only le temps de son execution.
Ce que tu pourrais faire c'est prendre la priorité (après tout s'il ne prend pas la sienne, autant lui prendre) :
voilà voilàCode:
1
2
3
4
5 if(monFile.setReadOnly()) // renvoie true si c ok { //creation de fichier temporaire, modification et sauvegarde }
mavina