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

C# Discussion :

Verrouiller un fichier


Sujet :

C#

  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Par défaut Verrouiller un fichier
    Bonjour à tous,

    J'ai besoin d'empêcher un utilisateur de supprimer un fichier étant traité par mon système (enfin, par une application avec laquelle je communique, ça a peut-être son importance).

    L'application va en fait modifier le fichier (.pdf) et le sauver.

    La seule solution que je connais est un lock sur un FileStream. Cependant, cela verrouille complètement le fichier et empêche donc mon application de modifier et sauver ce document.

    Comment pourrais-je m'y prendre? Je profite du sujet pour demander également des informations sur la méthode lock d'un FileStream. Je n'ai jamais réellement compris la signification des deux arguments (long position et long length).

    Merci pour votre aide !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    (enfin, par une application avec laquelle je communique, ça a peut-être son importance).
    Effectivement ça change tout... A priori c'est impossible. Seule l'application qui doit modifier le fichier peut le locker : si c'est une autre appli qui le fait, le fichier ne sera plus modifiable par l'appli qui doit le modifier...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Par défaut
    Merci pour ton aide tomlev.

    N'existe-t-il pas un moyen de ne verrouiller le fichier que contre la suppression ?
    Ce que je veux, c'est que, pendant traitement, l'utilisateur ne puisse pas supprimer le fichier (et uniquement le supprimer).

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Par défaut
    Bon, à priori, dans mon cas ce n'est pas problématique, car l'application tierce lock elle même le fichier, donc l'intervalle pendant lequel l'utilisateur peut supprimer le fichier est relativement court.

    Je laisse le topic ouvert jusqu'à ce soir, au cas où une solution pourrait aider les suivants. Merci tomlev

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Effectivement ça change tout... A priori c'est impossible. Seule l'application qui doit modifier le fichier peut le locker : si c'est une autre appli qui le fait, le fichier ne sera plus modifiable par l'appli qui doit le modifier...
    Sauf si le process de l'autre application est créé par la première, auquel cas on peut faire hériter les handles, il me semble, non ?

    Sinon, peut être aussi une possibilité en utilisation la fonction DuplicateHandle de l'API Win32, puis le constructeur de FileStream pouvant conssommer un handle.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2009
    Messages : 38
    Par défaut
    Si j'ai bien compris, tu souhaites empêcher la suppression du fichier "PDF" en cours de modification par ton application...

    Hmmm arrêtez moi si je dis des bêtises, mais normalement Windows empêche la suppression sur un fichier en cours d'utilisation non?
    En tout cas, pour avoir traiter/modifier/générer un bon paquet de PDF en c#, je n'ai jamais réussi à supprimer un PDF en cours de génération / modification...

    Lorsque l'application modifie le fichier, il t'es impossible de supprimer ce fichier, du moins il me semble.

    Donc en fait, y'a rien à faire... :-)

  7. #7
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Par défaut
    Citation Envoyé par Alkaza Voir le message
    Lorsque l'application modifie le fichier, il t'es impossible de supprimer ce fichier, du moins il me semble.
    C'est tout à fait vrai. Mais comme je le dis dans mon dernier post, il reste un intervalle "assez court" (~3-4sec), indépendant de ma volonté, pendant lequel le fichier n'est pas encore traité par l'application tierce et il reste donc durant cet intervalle "supprimable" par l'utilisateur.

    J'aurais aimé le locker pendant ce temps-là, mais je n'ai pas la possibilité de le délocker au moment idéal. Cependant, après avoir discuté avec mes supérieurs, ça n'est pas un soucis (ou du moins, c'est un soucis prévu).

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

Discussions similaires

  1. verrouiller un fichier
    Par reeda dans le forum C#
    Réponses: 5
    Dernier message: 21/08/2009, 13h32
  2. Verrouiller un fichier en lecture / Ouvrir en mode exclusif.
    Par Cravis dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/08/2008, 09h59
  3. [Généralités] Verrouiller les fichiers d'une base
    Par cjacquel dans le forum Sécurité
    Réponses: 3
    Dernier message: 04/12/2006, 10h57
  4. Verrouiller les fichiers
    Par Mister Nono dans le forum Entrée/Sortie
    Réponses: 23
    Dernier message: 28/11/2006, 20h36
  5. [Tout langage] Comment verrouiller des fichiers sans lock ?
    Par AiSpirit dans le forum Framework .NET
    Réponses: 2
    Dernier message: 04/08/2006, 09h11

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