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 :

Vérifier la présence de fichiers dans un répertoire


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut Vérifier la présence de fichiers dans un répertoire
    Bonjour, j'ai un petit projet pour lequel je dois vérifier la présence d'au moins un fichier portant l'extension ".map" dans un répertoire donné par l'utilisateur. Voici 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
    private void button3_Click(object sender, EventArgs e)
            {
                string[] files;
                bool map_exists = false;
                folderBrowserDialog1.ShowDialog();
                files = Directory.GetFileSystemEntries(folderBrowserDialog1.SelectedPath);
                int filecount = files.GetUpperBound(0) + 1;
                for (int i=0; i<filecount; i++)
                {
                    File temp = new File (files[i]);
                    if (temp.Extension.ToString("map"))
                    {
                        map_exists = true;
                    }
                }
                if (!map_exists)
                {
                    textBox3.Text = "Aucune map dans ce répertoire!";
                }
                else{
                    textBox3.Text = folderBrowserDialog1.SelectedPath;
                }
            }
    La compilation me renvoit l'erreur suivante:

    Erreur 1 Impossible de déclarer une variable de type static 'System.IO.File' D:\Documents and Settings\Admin\Local Settings\Application Data\Temporary Projects\mbuilder\Form1.cs 64 17 mbuilder
    Pourquoi ne puis je pas instancier un objet "File"? Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    File est une classe static, comme te le dit ton erreur, et donc par définition tu ne peux pas l'instancier.

    Pour créer un fichier tu peux utiliser la méthode Create ou CreateText qui te retourne un StreamWriter, buffer qui encapsule ton fichier nouvellement créé, et que tu dois utiliser pour écrire des données dans le fichier.

    Si tu veux créer un fichier et obtenir des informations du fichier comme l'extension, tu doit créer un Objet FileInfo. Alors à partir de celui-ci tu pourra créer le fichier, et obtenir des informations sur son extension, ....

    Et sinon, je te conseille d'utiliser des Foreach lorsque tu parcours entièrement un tableau, ou une collection, ...., c'est plus simple et tout aussi efficace.

  3. #3
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    moi je dirai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public virtual bool MapExists(string directory)
    {
     DirectoryInfo info = new DirectoryInfo(directory);
     if(!info.Exists)
       return false;
     else
      return info.GetFiles("*.map").Length > 0; //Length ou Count, je fait de tête ^_^
    }

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Merci pour vos réponses, j'ai résolu le problème en utilisant un objet fileinfo. Mais j'ai un peu peur que le tableu ainsi que la boucle chargent un peu trop le programme en mémoire.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    smyley n'est pas loin, mais il y a encore plus bateau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string path = folderBrowserDialog1.SelectedPath;
    bool exists = Directory.GetFiles( path, "*.map" ).Length > 0;
    C'est quand même un poil plus simple/clair/court non ? :)

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    C'est vrai c'est bien plus léger comme ça. Merci!

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Maniak
    sC'est quand même un poil plus simple/clair/court non ?
    Hihi, je préfère toujours vérifier l'existence des choses que je touche, tic que j'ai prit en ayant marre d'avoir des crash car un élément n'existait pas

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

Discussions similaires

  1. Vérifier présence fichier dans X répertoires et archiver
    Par hich9 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 30/07/2013, 17h19
  2. Réponses: 11
    Dernier message: 03/12/2010, 09h00
  3. Tester la présence de fichiers dans des répertoires
    Par andre_21 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 03/11/2009, 16h29
  4. Réponses: 4
    Dernier message: 22/12/2003, 11h12

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