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 :

Erreur de contexte FileExists


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Erreur de contexte FileExists
    Bonjour, j'ai actuellement une erreur lorsque je veux lire un fichier csv.
    En effet, il me dit que FileExists n'existe pas dans le fichier actuel, mais je ne sais pas pourquoi, sûrement une innatention de ma part mais je n'en suis pas sûr
    Mon code :
    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
    39
    40
     using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace WindowsFormsApplication1
    {
        class Main
        {
            ArrayList Tligne = new ArrayList(); // tableau qui va contenir les sous-chaines extraites d'une ligne.
            char[] splitter = { ';' }; // délimiteur du fichier texte
            string fic_serveur = null; // chaine qui contient le nom du fichier csv à ouvrir
     
        // Code
            if (File.Exists("oui.csv"))
            {
    // On vérifie si le fichier existe avant de l'ouvrir
       StreamReader line = new StreamReader("oui.csv");
            ligne=line.ReadLine();
    // on parcours les lignes jusqu'à la fin du fichier
       while (ligne!=null)
       {
          Tligne=ligne.Split(splitter); // récupération de la premiere ligne du fichier
                                              // On la sépare à l'aide du delimiteur => ';'
     
    // Ici, mets ton traitement sur les differents champs de ton CSV
    // Pour chaque ligne : Tligne[0] premier champs fichier CSV;
     
    // Peux utiliser Tligne.length pour connaitre le nombre de champs de chaque ligne
       } // Fin while (ligne!=null)
     
        line.Close(); // Fermeture du fichier CSV
    } // Fin If (file.exists)
        }
        }
     
    }

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 448
    Points : 990
    Points
    990
    Par défaut
    Hello,

    Je vais te répondre sur le plan général
    1) Tu peux passer le résultat du test sur un booléen et vérifier la valeur, tu sauras par conséquent ou tu en es, sinon tu peux mettre des points d'arrêts sur visual studio si tu ne passes pas par ce qui est contenu dans ta conditionnelle, c'est sûr et certains que le fichier n'est pas présent.
    2) Vérifie quel est le dossier d'éxecution actuel, sur un programme plus complexe, tôt ou tard tu peux être amené à te déplacer dans les répertoires. Directory.GetCurrentDirectory(); te communiquera le répertoire où tu te trouves pour ton programme. AppDomain.CurrentDomain.BaseDirectory si je me souviens bien, te donnera le répertoire de ton application, les deux doivent correspondre bien entendu. Enfin tu feras un Directory.SetCurrentDirectory(path) si à un moment tu as besoin de changer.

    3 ) n'oublie pas de mettre ce type d'ouverture wrappé dans un try{}catch{}, il suffit de renommer le fichier pour planter ton application, c'est peu élégant.

    Regarde via 1 et 2 et que ton fichier csv se trouve bien dans le bon répertoire, "./bin/debug/" par exemple...

    J'espère que ça aura pu t'aider, le soucis c'est que là sans avoir accès à ton disque dur ça serait compliqué de te dire pourquoi tu as ça, si le test ne trouve pas le fichier dans le dossier que tu indiques c'est qu'il n'y est pas, quand tu utilises l'instruction avec un path relative comme ici, il va partir du principe que le fichier est à la base de là où l'application se trouve au niveau des répertoires quand tu fais le test. D'où ma mise en garde sur les déplacements. A la limite personnellement je préfère faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string link = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "oui.csv");
    if(File.Exists(link)
    {
        //...
    }
    Comme ça il va travailler avec un path absolute, ça limite en général pas mal les soucis à mon gout. Je n'utilise pour ma part les paths relatives qu'avec parcimonie... en tout cas pas sur un unique fichier à ouvrir.

    Bonne soirée à toi et j'espère que tu vas trouver.

Discussions similaires

  1. Erreur : démarrage contexte echoué
    Par breiz3522 dans le forum Services Web
    Réponses: 5
    Dernier message: 03/05/2016, 11h34
  2. Réponses: 2
    Dernier message: 25/11/2015, 12h32
  3. Réponses: 0
    Dernier message: 16/01/2015, 11h19
  4. erreur de context
    Par cecile38 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 17/01/2011, 09h14
  5. Erreur de contexte sous Tomcat/Eclipse
    Par bahbah dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/10/2006, 10h51

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