IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

detection de Fichier ouvert


Sujet :

Entrée/Sortie Java

  1. #1
    Invité
    Invité(e)
    Par défaut detection de Fichier ouvert
    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

  2. #2
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Par défaut
    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

  3. #3
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608

  4. #4
    Invité
    Invité(e)
    Par défaut
    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..

  5. #5
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par Blaise1
    EN fait des collégues doivent développer un Intranet en Java mais ils n'ont aucunes ressources à leur disposition.


    CVS (+Eclipse) ?!...

  6. #6
    Invité
    Invité(e)
    Par défaut
    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..
    Dernière modification par Invité ; 18/05/2006 à 13h22.

  7. #7
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Par défaut
    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

  8. #8
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ? */
    }
    bien à toi

    mavina

  9. #9
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 10
    Par défaut
    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

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gormaz
    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...
    Oui tout à fait, j'avait éssayé avant de poster ma question.

  11. #11
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    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) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(monFile.setReadOnly()) // renvoie true si c ok
    {
      //creation de fichier temporaire, modification et sauvegarde
    }
    voilà voilà

    mavina

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] fichier ouvert pas detecté
    Par cybertronic dans le forum C#
    Réponses: 4
    Dernier message: 04/11/2013, 09h49
  2. Réponses: 5
    Dernier message: 13/05/2005, 12h26
  3. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 17h47
  4. [langage] [Fork] Détecter un fichier
    Par GLDavid dans le forum Langage
    Réponses: 11
    Dernier message: 08/07/2004, 01h05
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo