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 :

C# 1.1 Application console: ERREUR IMPOSSIBLE DE SUPPRIMER UN FICHIER CSV


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Par défaut C# 1.1 Application console: ERREUR IMPOSSIBLE DE SUPPRIMER UN FICHIER CSV
    Bonjour ,

    Je suis sous le FRAMEWORK 1.1, j'ai fais une application console permettant l'import automatique d'un fichier csv.
    1) Je déclare une variable qui contient le chemin complet du fichier.
    2) Je copy mon le contenu de mon fichier csv dans un fichier txt temporaire.
    3) Je parse le fichier txt que j'insere dans la table de ma BDD .
    4) Je supprime le fichier txt
    5) Je supprimer le fichier csv


    L'erreur se produit quand j'ai ajouté la ligne File.delete(monFichierCsv) donc c'est à dire l'étape 5, l'erreur est la suivante :

    "Le processus ne peut pas accéder au fichier , car il est en cours d'utilisation par un autre processus."


    Je voudrais savoir si quelqu'un a eut le même problème et comment a-t-il fait pour le résoudre?

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Montre nous ton code que l'on puisse t'aider, tu as sans doute oublier de libérer la ressource à un endroit.

    Oublie pas de commencer par lire les cours de formation pour apprendre la programmation C# : http://dotnet.developpez.com/cours/?page=csharp

  3. #3
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    tu as pensé à fermer le fichier avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monStreamReader.Close();
    à moins que tu ne passes pas en streamreader. Mais dans tous les cas le message semble indiquer que tu ne refermes pas ton fichier après l'avoir exploité.

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Par défaut
    Citation Envoyé par Lyche Voir le message
    tu as pensé à fermer le fichier avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monStreamReader.Close();
    à moins que tu ne passes pas en streamreader. Mais dans tous les cas le message semble indiquer que tu ne refermes pas ton fichier après l'avoir exploité.

    Cordialement,
    Lyche

    Merci j'ai déja fait ja fais sr.close() juste avant de faire :
    File.Delete(path);


    ca ne marche pas :s

  5. #5
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    if (File.Exists(path))
    File.OpenRead(path);

    StreamReader sr = File.OpenText(path);
    string content = sr.ReadToEnd();

    import.ValidImport(path);

    File.Delete(path);
    Tu ne dispose pas ta variable sr !!
    je te conseille plutot d'utiliser des using :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (File.Exists(path)) 
        File.OpenRead(path);
    
    using (StreamReader sr = File.OpenText(path))
    {
    string content = sr.ReadToEnd();
     
    import.ValidImport(path);
    }
     
    File.Delete(path);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Par défaut
    Citation Envoyé par DroP Voir le message
    Tu ne dispose pas ta variable sr !!
    je te conseille plutot d'utiliser des using :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (File.Exists(path)) 
        File.OpenRead(path);
    
    using (StreamReader sr = File.OpenText(path))
    {
    string content = sr.ReadToEnd();
     
    import.ValidImport(path);
    }
     
    File.Delete(path);
    Merci à tout le monde de me répondre pour commencer .

    Sinon en ce qui concerne de dispose ma variable sr je ne sais pas comment faire ? Et j'ai tester avec ton using j'ai toujours la même erreur.

  7. #7
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Bonjour,
    je voulais donner une sollution,car j'ai pas vu le flag resolu,

    donc essaye de le mettre sur

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Par défaut CODE
    Citation Envoyé par DroP Voir le message
    Montre nous ton code que l'on puisse t'aider, tu as sans doute oublier de libérer la ressource à un endroit
    Fonction importDonnées:


    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
     
    DirectoryInfo dossier = new DirectoryInfo(path);
     
    foreach (FileInfo mesfichiers in dossier.GetFiles("*.csv"))
    {
      Console.WriteLine(mesfichiers.FullName); 
      path = mesfichiers.FullName.ToString();
    }	
     
    if (File.Exists(path)) 
        File.OpenRead(path);
     
    StreamReader sr	=	File.OpenText(path);
    string content = sr.ReadToEnd();
     
    import.ValidImport(path);
     
    File.Delete(path);
    Fonction ValidImport(path)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private void ValidImport(string path)
    {
    string cheminFichier= "C:\\Temporaire_file\\monfichier.txt";
     
    try
    {
     
    File.Copy(path,cheminFichier);
    this.importation(cheminFichier);
     
    }
     
    }
    Fonction Importation
    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
     
    private void importation(string cheminFichier)
    {
    try
    {  
    StreamReader fichier = File.OpenText(cheminFichier);
    ...
    Ensuite je déclare cette variable pour lire ligne à ligne : 
    string lignes = fichier.ReadLine();
    }
    catch ...
     puis dans le finally : 
     
    finally
    {
      fichier.Close();
    }
     
    }
    Désolé pour l'indentation mais je n'ai pas l'habitude du site la c'est pour cela voilà .

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

Discussions similaires

  1. Erreur: impossible de verouiller le fichier
    Par alicia26 dans le forum Sécurité
    Réponses: 3
    Dernier message: 15/01/2009, 15h18
  2. [FluxBB] [punBB] Comment résoudre l'erreur : impossible d'écrire le fichier cache
    Par chk9300 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 12/04/2007, 17h24
  3. impossible de supprimer le fichier !
    Par asoka13 dans le forum Windows XP
    Réponses: 3
    Dernier message: 27/06/2006, 09h20
  4. Impossible d'importer un fichier csv dans une table sous MySQL
    Par manue85 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 20/04/2006, 12h06
  5. [Erreur]impossible de trouver le fichier de config du moteur
    Par julietteste dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/05/2005, 18h34

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