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

Java Discussion :

Détecter ouverture et fermeture de fichier


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Par défaut Détecter ouverture et fermeture de fichier
    Bonjour, je cherche a détecter l'ouverture et la fermeture d'un fichier.
    Pour cela j'utilise FileChannel et la méthode tryLock. Ca permet de tenter d'obtenir un verrou exclusif, si la méthode plante, c'est que je peux pas obtenir de verrou et donc que le fichier est ouvert.
    Malheureusement cette méthode a ses limites. Déja certains fichiers (ou plutot certains programmes qui ouvre ces fichiers...) sont ouvert sans avoir de Lock, c'est le cas des fichiers txt ou des images par exemple. On peut très bien par exemple renommer un txt alors qu'il est ouvert dans un programme.
    D'autre part certains programmes (voir tous?) relache le lock pour sauvegarder le fichier. Donc pendant la sauvegarde, j'ai l'impression que le fichier a été fermé...

    Quelqu'un aurait-il déja expérimenté la détection d'ouverture et de fermeture de fichier? Quelqu'un aurait-il une solution (peu importe le langage)?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sous linux tu as la commande lsof qui liste tous les handle de toutes les applications.

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    L'ouverture et la fermeture de fichier est en effet un problème bien distinct du lock.

    Tu n'a aucun moyen de savoir de manière sure si une application travaille sur un fichier pour la bonne raison que la plupart du temps elles se contentent de le charger en mémoire et travaillent ensuite sur cette copie en mémoire.

  4. #4
    Membre confirmé Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Par défaut
    Je confirme tes propos Uther.
    Même en récupérant le handle ce pas possible pour deux raisons :
    - Comme tu l'as dit certaines applis travaille en mémoire et n'ont donc pas de handle
    - Certaines applis (comme open office) travaillent sur un fichier temporaire pendant la sauvegarde et donc perde le handle sur le vrai fichier pendant cette période...

    En bref c'est strictement impossible de savoir si un fichier est oiuvert a un instant T.
    snif snif...

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un handle correspond à l'ouverture, tu confond juste "fichier ouvert" (=un handle existant, concept OS) et "application manipule ce fichier" (concept purement utilisateur qui ne concerne pas l'OS)

  6. #6
    Membre confirmé Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Par défaut
    Euhhh pour mot un handle est un pointeur vers un fichier...
    Si l'application utilise un handle on est sur que le fichier est ouvert. Si elle n'utilise pas de handle c'est que le fichier est fermé pour l'OS, mais rien ne dit que l'appli n'a pas importé ce fichier.
    J'ai pas vraiment compris quels concepts j'ai loupé (j'avoue que la c'est pas mon domaine).

    tchize_, si tu es en train de me dire que je peux détecter qu'un fichier est ouvert (même uniquement sous linux) dans une appli au point de vue de l'utilisateur alors je suis méga-preneur! Parce que la je nage!

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non justement, comme c'est un concept spécifique à l'application (elle peut très bien avoir tout en mémoire et seulement une strng avec le nom du fichier), c'est impossible à détecter, c'est ce que je disais. Tout ce que tu peux détecter c'est des handle (= fichier ouvert au niveau de l'os). Mais l'un n'implique l'autre que dans un sens (si un application a des handle sur un fichier, elle l'utilise, mais elle peux utiliser un fichier sans garder des handles dessus)

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

Discussions similaires

  1. [XL-2010] Ouverture et fermeture d'un ruban personnalisé pour un fichier spécifique
    Par pubbins dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2011, 23h09
  2. détecter ouverture de fichiers
    Par dvechamb dans le forum Windows
    Réponses: 2
    Dernier message: 23/06/2010, 11h44
  3. Fermeture du fichier Access sur ouverture requete
    Par jj4822 dans le forum Access
    Réponses: 8
    Dernier message: 05/06/2009, 21h50
  4. Réponses: 5
    Dernier message: 26/10/2007, 23h45
  5. ouverture et fermeture d un fichier
    Par magnetic dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 08h58

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