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 :

lire un fichier readOnly ?


Sujet :

Windows Forms

  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut lire un fichier readOnly ?
    salut,

    j'ai essayé plusieurs manière d'ouvrir un fichier en lecture seul mais a chaque fois j'ai l'erreur IOException :
    Le processus ne peut pas accéder au fichier xxxxxxxx.xxx, car il est en cours d'utilisation par un autre processus.
    le fichier à l'attribut readOnly ...
    j'arrive a visualiser son contenu avec notepad ou un autre éditeur de texte, donc il y a bien une facon de lire le contenu de ce fichier.

    comment ?

    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    Bonjour.

    Il faut que tu ouvre le fichier en mode lecture seule. Ca se fait dans l'initialisation de ton StreamReader.

    Cela dit l'exception levée n'est pas liée au fait que le fichier est en lecture seule, elle est levée car comme elle dit, un autre programme a la main dessus.

    Sais tu quel est ce programme?
    Si non : Pense tu à faire un Close() puis Dispose() quand tu as fini de lire ton fichier?

  3. #3
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut giova


    le fichier correspond au "flashlog.txt" qui est un fichier de debug ou est inscrit plein d'infos envoyés par le lecteur Flash.
    donc des qu'une anime flash est lancé, le fichier est bloqué en écriture.

    le probleme c'est que j'arrive a l'ouvrir avec des éditeurs de texte (notepad/editplus/....) et à afficher son contenu, c'est donc qu'il y a une maniere de le faire !

    j'ai essayé ces différentes méthodes :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    using(sr = new FileStream(_fichierLog, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true)) {
      byte[] b = new byte[fi.Length];
      textBoxLog.Clear();
      while(sr.Read(b, Convert.ToInt32(_tailleLog), Convert.ToInt32(fi.Length)) > 0) {
        textBoxLog.AppendText(temp.GetString(b));
      }
    }
     
     
     
     
     
    using(sr = new StreamReader(_fichierLog, true)) {
      String line;
      textBoxLog.Clear();
      while((line = sr.ReadLine()) != null) {
        textBoxLog.AppendText(line + Environment.NewLine);
      }
    }
     
     
     
    using (FileStream fs = File.OpenRead(_fichierLog)){
      byte[] b = new byte[1024];
      UTF8Encoding temp = new UTF8Encoding(true);
      while (fs.Read(b,0,b.Length) > 0){
        Console.WriteLine(temp.GetString(b));
      }
    }
     
     
     
    FileInfo fi = new FileInfo(_fichierLog);
    FileStream fs = fi.OpenRead();
    byte[] arr;
    fs.BeginRead(arr, 0, fi.Length, );
    textBoxLog.Text = File.ReadAllText(_fichierLog);
    mais a chaque fois j'ai l'erreur en question (IOException) pourtant dans mon 1er code il me semble bien indiquer : FileMode.Open, FileAccess.Read, FileShare.Read

    ce n'est pas suffisant ?
    comment faire pour l'ouvrir en lecture seul ?

    merci

  4. #4
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    le framework .NET est incapable de faire ca ?

  5. #5
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Désolé de de faire remonté cet ancien post, mais je ne trouve toujours pas de réponse et pourtant je suis grandement intéressé par elle !

  6. #6
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Trouvé !
    Comme d'hab.. il faut bien chercher... sinon ça veut dire qu'il n'y a pas de problème...
    Source de la solution: http://coding.infoconex.com/post/200...-use-in-C.aspx
    En substance :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Stream vStream = new FileStream(
    		filename, 
    		FileMode.Open, 
    		FileAccess.Read, 
    		FileShare.ReadWrite)
    Il fallait donc préciser FileShare.ReadWrite.

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

Discussions similaires

  1. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26
  2. [MFC] lire un fichier en int
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 09h32
  3. Réponses: 5
    Dernier message: 11/01/2004, 20h17
  4. Lire un fichier de 50 gb
    Par Maryves dans le forum MFC
    Réponses: 2
    Dernier message: 08/01/2004, 14h08
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

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