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

Windows Forms Discussion :

[C# 2.0] Ouvrir un fichier et interdir qu'on le modifie avant qu'il soit fermé


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut [C# 2.0] Ouvrir un fichier et interdir qu'on le modifie avant qu'il soit fermé
    Hello,

    J'ai une serie de fichiers texte dans un repertoire partagé. Ces fichiers sont lus par mon appli. Je voudrais que lorsqu'un fichier est ouvert par un utilisateur, les autres utilisateurs ne puissent pas ecrir dans ce fichier tant que l'utilsateur qui l'a ouvert en premier ne l'a pas fermé.

    Comment est-ce que je peux faire ça??
    moi j'ai pensé à jouer avec l attribut "ReadOnly" du fichier.. mais je ne sais pas s'il existe d'autres possibilités


    Merci

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut bossun,

    dans la methode open de la classe File

    tu peux specifier le type d'accees que ont les autre sthreads qui essaient de manipuler le fichier.

    Essaie cette solution.
    A+

  3. #3
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    yeah super.. j'étais justement en train de lire ce document :-)


    une autre question:

    Est-il possible de savoir au moment de l'ouverture du fichier s'il est déjà ouvert par qqn d'autre??

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    normalement si le fichier est deja ouvert, et que quelqu'un d'autre veut l'ouvrir, tu devrais avoir une exception, non .

    Enfin à part ca je n'ai pas d'autre idée à proposer et je ne pense pas qu'il existe un moyen de le savoir.

  5. #5
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Yep, super...

    je devrais m'en sortir avec ça...

    merci bcp

  6. #6
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    j'ai encore une question..

    j'ai effectivement une exception si qqn a déjà ouvert le fichier en lecture/ecriture.

    mais par contre je ne sais pas comment faire pour ouvrir le fichier en lecture seule...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
                try
                {
     
     
                    _LayoutStream = File.Open(filepath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
                    _ReportParameters = (LayoutSerialization)BF.Deserialize(_LayoutStream);
     
     
                }
                catch (IOException ex)
                {
                    _LayoutStream = File.Open(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
                    _ReportParameters = (LayoutSerialization)BF.Deserialize(_LayoutStream);
     
                    MessageBox.Show("Ce rapport est en lecture seule car il est déjà ouvert par un autre utilisateur");
                }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 14h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 11/01/2004, 00h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 14h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 18h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 16h59

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