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 :

Lister fichiers de plusieurs repertoires [Débutant]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2016
    Messages : 55
    Par défaut Lister fichiers de plusieurs repertoires
    Bonjour a tous ! =)

    Me revoici de retour sur le fofo pour une nouvelle question a soumettre aux pros du c# !
    Alors voila, c'est tous bête mais je rencontre quelques difficultés a créer ma petite appli de copie assistée..

    Je m'explique, j'ai un repertoire réseau ( incluant des sous-répertoires ) qui contient pleins de fichiers du même type (.id ), le but et de d'avoir une form avec 2 textbox ( une ou l'on rentre le nom du fichier désiré et l'autre ou l'on rentre la destination ou l'on veut copier le fichier ).

    Bon ca c'est facile, j'y arrive bien, le problème c'est quand le fichier que je veux se trouve dans un sous repertoire... je ne parvient pas a " trouver " mon fichier.

    Voila le code pour illustrer:

    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 button1_Click(object sender, EventArgs e)
            {
                string fichier = textBox1_id.Text;
                string frc = textBox2_FRCdistant.Text;
     
                if (System.IO.File.Exists(@"\\chemin_reseau" + fichier))
     
                    try
                    {
                        System.IO.File.Copy(@"\\chemin-reseau" + fichier, @"\\" + frc + @"\d$" + @"\" + fichier);
                    }
                    catch
                    {
     
                    }
     
                else
                {
                    MessageBox.Show("Le fichier spécifié n'existe pas !", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
     
     
               // MessageBox.Show("Transfert effectué ! ", "Done !", MessageBoxButtons.OK, MessageBoxIcon.Information);
    Donc ce code fonctionne ( plus ou moins bien ^^' ) mais des que le fichier se trouve dans un sous repertoire de " chemin_réseau " bin je ne le trouve po, forcement..
    Du coup n'y aurait il pas une petite astuce pour englober tous les sous-dossiers de mon " chemin-réseau " lors de mon System.IO.file.Copy ?

  2. #2
    Membre chevronné Avatar de Julien698
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2013
    Messages : 237
    Par défaut
    Salut,

    Avec File.Exists tu es obligé de spécifier le chemin complet du fichier.
    Exemple pour un sous dossier : @"\\chemin_reseau\\sousDossier\\" + fichier , dans le cas actuel c'est normal qu'il ne les trouve pas.

    Ce que tu peux faire c'est de lister tous les fichiers dans un array avec leur chemin complet, et lancer ta recherche dessus.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2016
    Messages : 55
    Par défaut
    D'accord mais t'aurais un exemple de comment faire ca ?
    Je ne sais pas ce que c'est une array...

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    Je pense que ta solution passeras forcément par Directiory.GetFiles(...)

    Bon code,
    J@ck.

  5. #5
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2016
    Messages : 55
    Par défaut
    Salut J@ckHerror !

    D'accord un getfiles mais après j'en fait quoi ? t'a une idée ?
    J'peux afficher le tout dans une listbox...

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Si tu as 2 fichiers qui portent le même nom dans 2 dossiers différents, ça te dérange pas de ne pas savoir lequel va être copié ?

    Si oui, il faudrait peut être afficher un chemin plus parlant.

    Sinon pour ton problème :
    Je ne stockerai pas des chaines de caractères dans ma listbox mais des objets FileInfo.
    Demander à la listbox d'afficher la propriété Name de ces objets FileInfo.

    Ça donne quelques chose comme ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    listBox1.DisplayMember = "Name";
    string[] lst = Directory.GetFiles(@"C:\MSOCache", "*.*", SearchOption.AllDirectories);
    foreach (string item in lst)
    	listBox1.Items.Add(new FileInfo(item));
    Après, il y a toutes les informations que tu souhaites dans la listbox puisque ce sont des objets FileInfo (.FullName pour le chemin complet)

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

Discussions similaires

  1. Lister fichiers dans sous repertoires
    Par micka180 dans le forum VBScript
    Réponses: 2
    Dernier message: 26/11/2009, 10h34
  2. Copier et renommer un fichier de plusieurs repertoires differents
    Par Jessy2 dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 01/10/2008, 15h24
  3. Charger fichiers de plusieurs repertoires
    Par kabil.cpp dans le forum MATLAB
    Réponses: 9
    Dernier message: 12/09/2008, 13h29
  4. Lister fichier dans un repertoire distant
    Par toitoine01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/06/2008, 09h30
  5. Comment Cherher un fichier sous plusieur repertoir
    Par zizo89 dans le forum Delphi
    Réponses: 3
    Dernier message: 17/05/2007, 20h32

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