Partage
  • Partager sur Facebook
  • Partager sur Twitter

Client FTP

Crée un client FTP léger et simple

    10 mars 2012 à 18:15:13

    Bonjour à tous ! je fait appel à votre aide car j'ai pour projet de créer un client FTP (permettant de download et upload) le tout en c# par le biais d'une interface graphique: Windows Form.
    J'utilise pour développer le logiciel VisualStudio.

    Je fait appel à vous car je voudrais savoir comment insérer dans mon interface graphique les arborescences (d'un coté celle du PC hôte du client FTP: c:\\... et de l'autre celle du Serveur FTP)
    Je pense qu'il faut utiliser le contrôle TreeView mais même après avoir rechercher sur internet je ne vois pas comment récupérer les arborescences ...


    Merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      10 mars 2012 à 18:54:11

      Citation : Romrom42

      Je pense qu'il faut utiliser le contrôle TreeView mais même après avoir rechercher sur internet je ne vois pas comment récupérer les arborescences ...


      Pour obtenir l'arborescence du répertoire local, tu as (notamment) la classe Directory et sa méthode EnumerateFiles.
      Pour obtenir l'arborescence du répertoire distant (par FTP), il faut que tu envoies une requête FTP avec la classe FtpWebRequest en spécifiant la méthode ListDirectory. Ca sera alors à toi de parser la réponse obtenue.
      • Partager sur Facebook
      • Partager sur Twitter
        11 mars 2012 à 13:47:58

        Merci pour ta réponse

        Je n'ai pas encore eu le temps de m'occupé de la partie en rapport avec le serveur FTP mais en ce qui concerne l'arborescence local j'ai une erreur au niveau de "EnumerateFiles" j'ai pourtant bien ajouté les bibliothèques System.IO , System.Linq ... je ne vois pas d'ou vient l'erreur.
        Directory.EnumerateFiles(@"C:\Users\");
        


        J'ai aussi un soucis au niveau du Journal de connections etc .. que j'ai crée dans un fichier .txt et que j'ai rendu lisible par le biais d'une listbox mais j'aimerais que ce soit toujours les dernières lignes qui soient affichées dans la listbox (ascenseur toujours le plus bas possible).
        De plus comment faire pour que l'écriture dans un fichier .txt ce fasse toujours à la suite de ce qui est déjà présent dans le fichier (sans réécrire par dessus)
        J'utilise :
        System.IO.File.WriteAllLines("XX.txt", MessageEnregistréEnString);
        


        Merci d'avance
        • Partager sur Facebook
        • Partager sur Twitter
          11 mars 2012 à 15:07:50

          Citation : Romrom42

          je ne vois pas d'ou vient l'erreur.


          Quel est le message d'erreur ?

          Citation

          j'aimerais que ce soit toujours les dernières lignes qui soient affichées dans la listbox (ascenseur toujours le plus bas possible).


          Là comme ça, je n'ai pas de solution en tête... :euh:

          Citation

          De plus comment faire pour que l'écriture dans un fichier .txt ce fasse toujours à la suite de ce qui est déjà présent dans le fichier (sans réécrire par dessus)


          Il y a plein de méthodes (statiques ou non) permettant d'ajouter du texte (append en anglais) à la suite d'un fichier. Il n'y a pas de méthode File.AppendAllLines, mais tu peux par exemple utiliser File.AppendAllText() en faisant au prealable un string.Join() sur les lignes à ajouter.
          • Partager sur Facebook
          • Partager sur Twitter
            11 mars 2012 à 16:50:20

            l'erreur c'est :
            " 'System.IO.Directory' ne contient pas de définition pour 'EnumerateFiles' "
            • Partager sur Facebook
            • Partager sur Twitter
              11 mars 2012 à 17:12:06

              Oups, la méthode Directory.EnumerateFiles() est effectivement nouvelle en .Net 4.5. Je pensais plutôt à la méthode DirectoryInfo.EnumerateFiles() (qui elle n'est pas statique).

              Edit : Non en fait, Directory.EnumerateFiles() a été introduite en .Net 4.0. Es-tu sûr d'avoir choisi la dernière version de .Net ? :o
              • Partager sur Facebook
              • Partager sur Twitter
                11 mars 2012 à 18:00:04

                N'étant pas sur je viens d'installer la version 4.0 de .Net framework mais ca change rien :s
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  11 mars 2012 à 18:02:33

                  Change le framework cible dans les propriétés du projet (=> .NET 4 CP).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 mars 2012 à 18:11:40

                    Je ne peut choisir qu'entre 2.0, 3.0 et 3.5 :s
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 mars 2012 à 18:56:07

                      Il faudrait peut-être passer à Visual Studio 2010 ? (ou alors tu attends la version 11, elle arrive bientôt). :-°

                      Au pire il reste toujours la méthode de la classe DirectoryInfo...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 mars 2012 à 19:12:29

                        Du coup la méthode DirectoryInfo je dois l'utiliser comment?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          11 mars 2012 à 19:22:49

                          En créant une instance de DirectoryInfo pour le répertoire que tu veux.
                          Cela dit, tu devrais vraiment passer à VS 2010.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 mars 2012 à 10:40:54

                            Salut à tous,

                            Mon projet avance bien j'aurais besoin de votre aide pour effectuer une vérification.

                            En ce qui concerne la gestion de profil:
                            J'ai crée une combobox permettant de choisir son profil parmi les profils enregistrés et un textBox ou l'on choisi le nom de notre Profil avant de l'enregistrer (le profil contient les informations : adresse, port etc... stockées dans un fichier .xml)
                            J'aimerais lors de la création d'un profil que mon programme vérifie si le nom de profil n'est pas déjà utilisé et si c'est le cas je n'ajouterai pas le profil et je retournerai un petit MessagBox pour prévenir.
                            (Je ne vois pas comment comparer toute la liste des items de ma ComboBox au texte de mon TextBox)

                            Merci d'avance !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 mars 2012 à 11:20:18

                              Citation : Romrom42

                              J'aimerais lors de la création d'un profil que mon programme vérifie si le nom de profil n'est pas déjà utilisé et si c'est le cas je n'ajouterai pas le profil et je retournerai un petit MessagBox pour prévenir.
                              (Je ne vois pas comment comparer toute la liste des items de ma ComboBox au texte de mon TextBox)


                              Il faut que tu distingues deux choses :
                              • Les données "métier" qui sont manipulées par ton appli. Dans ton cas il s'agit d'un ensemble de profils utilisateur. Ces informations existent "dans l'absolu" : elles sont indépendantes de la manière dont tu les enregistres ou dont tu t'en sers pour agir sur l'interface.
                              • L'interface de ton application, qui est une "représentation visuelle" de tes données métier.
                              Dans le cas présent, tu veux savoir si un profil utilisateur avec le nom saisi existe déjà. En soi ça n'a rien à voir avec l'interface ; c'est une "requête" que tu veux "exécuter" sur tes informations métier.

                              Donc en gros, ce n'est pas ta ComboBox qui doit jouer le rôle de liste des profils utilisateur existants : ce n'est que la représentation visuelle de cette liste. Tu devrais avoir quelque part une liste (une "vraie" cette fois, une List<>) d'objets UserProfile (qui sont donc tes "vraies" données métier), qui sert de source pour ta ComboBox, et depuis laquelle tirer des informations comme "existe-t-il un profil portant ce nom ?" est assez facile. :)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Client FTP

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown