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#] Création puis ouverture d'un fichier => problème


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Par défaut [C#] Création puis ouverture d'un fichier => problème
    Bonjour à tous,

    J'ai un bout de code qui crée un fichier puis l'ouvre en écriture.
    Le problème, c'est que j'ai à chaque fois l'IOException suivante :
    The process cannot access the file 'C:\file.txt' because it is being used by another process.

    Apparemment, le fait de créer le fichier et de l'ouvrir juste après semble poser problème.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    File.Create("C:\file.txt");
    using (StreamWriter writer = new StreamWriter("C:\file.txt", true))  // -> exception ici
    {
      ...
    }
    Merci bien si vous avez une idée...

  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
    La bonne syntaxe est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileStream theFile = File.Create("C:\file.txt");
    StreamWriter writer = new StreamWriter(theFile);

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    Bonjour,
    je dirait même plus ,
    N'oublie pas de fermer ton StreamWriter a la fin :

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Par défaut
    J'ai mal posté mon code. En fait, voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    File.Create(@"C:\file.txt" );
    using (StreamWriter writer = new StreamWriter(@"C:\file.txt", true))  // -> exception ici
    {
      writer.WriteLine(message);
      writer.Flush();
      writer.Close();
    }
    Et ce code plante au "using..."

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 171
    Par défaut
    J'ai fait le test ultime :
    Ce test plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileStream theFile = File.Create(@"C:\file.txt");
    StreamWriter writer = new StreamWriter(@"C:\log\_test.txt");
    Ce test marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileStream theFile = File.Create(@"C:\file.txt");
    StreamWriter writer = new StreamWriter(theFile);
    Bizarre non ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 59
    Par défaut
    Citation Envoyé par Rodie
    Bizarre non ?
    Non, c'est pas bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileStream theFile = File.Create(@"C:\file.txt");
    ==> là tu as ouvert un stream en écriture sur ton fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamWriter writer = new StreamWriter(@"C:\file.txt");
    ==> là tu essayes d'ouvrir un 2 ème stream en écriture sur le même fichier alors que le 1er n'est pas fermé (il est toujours ouvert). Or il est impossible d'avoir 2 accès en écriture simultanément.

    La 2ème syntaxe marche car tu conserves tout le temps le même stream.

  7. #7
    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
    Citation Envoyé par ekinox17
    Bonjour,
    je dirait même plus ,
    N'oublie pas de fermer ton StreamWriter a la fin :
    Plutot il doit fermer son FileStream à la fin. le StreamWriter (writer) ne doit pas etre fermé s'il l'utilise dans un block using.

    Citation Envoyé par Rodie
    Ce test marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileStream theFile = File.Create(@"C:\file.txt");
    StreamWriter writer = new StreamWriter(theFile);
    Mais je t'ai donné la solution depuis tout à l'heure

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

Discussions similaires

  1. [Multimédia] [Phonon] Erreur à l'ouverture d'un fichier MP3 (problème de broches)
    Par VivienD dans le forum Débuter
    Réponses: 3
    Dernier message: 19/10/2012, 12h58
  2. [Emu8086] Création et ouverture d'un fichier
    Par ahmedbj dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 16/01/2010, 18h36
  3. [Débutant] Création et ouverture de fichiers
    Par jef1910 dans le forum Cobol
    Réponses: 1
    Dernier message: 25/01/2008, 09h28
  4. création objet avec l ouverture d un fichier excel
    Par levac dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/07/2007, 15h51
  5. Téléchargement de fichier puis ouverture d'une page sur un clic
    Par gy0m76 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/12/2006, 12h32

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