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

Visual Studio Discussion :

[VS.Net 2003 .Net 1.1] StreamWriter Exception non gérée !


Sujet :

Visual Studio

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Points : 58
    Points
    58
    Par défaut [VS.Net 2003 .Net 1.1] StreamWriter Exception non gérée !
    Bonjour, j'ai un soucis avec un streamwriter qui me sert de fichier de log:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(System.IO.File.Exists(Configuration.racineRepConfig + "log.txt") == false)
                {System.IO.File.Create(Configuration.racineRepConfig + "log.txt");}
                sw = new System.IO.StreamWriter(Configuration.racineRepConfig + "log.txt",true,System.Text.Encoding.UTF8);

    Ce fichier n'est crée que s'il n'existe pas déjà, et j'ecris dedans de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sw.WriteLine(DateTime.Now + " --> " + MyMessage.Message);

    Comme je developpe un serveur, j'aimerai éviter les plantages et malheureusement de temps à autre, il me génére cette exception :

    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
    System.IO.IOException: Le processus ne peut pas accéder au fichier
    "D:\pub\wwwroot\dowload-spelog\config\log.txt", car il est en cours
    d'utilisation par un autre processus.
       at System.IO.__Error.WinIOError(Int32 errorCode, String str)
       at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess
    access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath,
    Boolean bFromProxy)
       at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess
    access, FileShare share, Int32 bufferSize)
       at System.IO.StreamWriter.CreateFile(String path, Boolean append)
       at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding
    encoding, Int32 bufferSize)
       at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding
    encoding)
       at srvimp.form_srvimp.form_srvimp_Load(Object sender, EventArgs e) in
    d:\projets\srvimp\srvimp\form1.cs:line 296

    je finis avec un sw.flush(); sw.close();
    Si quelqu'un voit de quoi cela peut venir, je suis preneur. Merci d'avance.

    Cordialement.


    Niko

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Perso j'utilise un fichier de log et j'y accède souvent. J'utilise une méthode que j'ai trouver dans les Faq ici :

    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
     
    try
                {
                    if (!File.Exists(nomFichierLog))
                    {
                        sw = new StreamWriter(nomFichierLog);
                        // Le fichier n'existe pas. On le crée.
                        sw.WriteLine(pMessage);
                        sw.Close();
                        sw = null;
                    }
                    else
                    {
                        sw = File.AppendText(nomFichierLog);
                        sw.WriteLine(pMessage);
     
                        sw.Close();
                        sw = null;
                    }
                }
                catch (Exception ex1)
                {
                    MessageBox.Show(ex1.Message);
                }
                finally
                {
                    // Fermeture streamwriter
                    if (sw != null) sw.Close();
                }
    Après tu peux toujours catcher les IOException et forcer réessayer de fermer le fichier...

    Bonne chance
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup . En fait ,le mieux est de fermer le fichier après l'écriture de chaque ligne, et adieu les plantages !

    A la prochaine... et merci encore

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

Discussions similaires

  1. Quel langage entre vb.net c#.net c++.net java ?
    Par heeedi dans le forum Débuter
    Réponses: 7
    Dernier message: 13/12/2008, 21h53
  2. Participez à la F.A.Q .NET ASP.NET Delphi.NET
    Par Jérôme Lambert dans le forum Contribuez
    Réponses: 0
    Dernier message: 05/12/2008, 00h00
  3. Participez à la F.A.Q .NET ASP.NET VB.NET
    Par Jérôme Lambert dans le forum Contribuez
    Réponses: 0
    Dernier message: 05/12/2008, 00h00
  4. [C#] exception non gérée
    Par zorglub88 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/03/2006, 16h28
  5. Réponses: 4
    Dernier message: 14/02/2005, 19h41

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