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 :

selection de fichier (jpg) à partir de donneés récupérer sur un FTP


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut selection de fichier (jpg) à partir de donneés récupérer sur un FTP
    Bonjour,

    Je récupère actuellement des données à partir d'un FTP grace à une fonction "download".

    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
    private void Download(string filePath, string fileName)
            {
                FtpWebRequest reqFTP;
                try
                {
                    //filePath = <<The full path where the file is to be created.>>, 
                    //fileName = <<Name of the file to be created(Need not be the name of the file on FTP server).>>
                    FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
     
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName));
                    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    long cl = response.ContentLength;
                    int bufferSize = 2048;
                    int readCount;
                    byte[] buffer = new byte[bufferSize];
     
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                    while (readCount > 0)
                    {
                        outputStream.Write(buffer, 0, readCount);
                        readCount = ftpStream.Read(buffer, 0, bufferSize);
                    }
     
                    ftpStream.Close();
                    outputStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    Ma question est la suivante:
    Je souhaiterais pouvoir selectionner uniquement les fichier images (jpg) parmis l'ensemble des données récupérer sur le FTP (tout cela en C#).

    Merci d'avance pour les personnes qui pourront m'aider...
    Anne

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Le paramètre "fileName" de ta fonction ne sert pas à ça?
    Sinon, il me semble qu'il existe de méthode de l'objet FTP pour lister le repertoire d'un site FTP.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://ton_site.fr");
    ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectory;
    ftp.AuthenticationLevel = System.Net.Security.AuthenticationLevel.None;
    ftp.KeepAlive = true;
    ftp.UseBinary = true;
    ftp.UsePassive = true;
     
    FtpWebResponse listResponse =(FtpWebResponse)ftp.GetResponse();
    Response.Write(listResponse.BannerMessage.ToString());
    StreamReader reader = new StreamReader(listResponse.GetResponseStream());
    string st = reader.ReadToEnd();
    Response.Write("List Response:<br />");
    Response.Write(st.Replace("\r\n", "<br />"));
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut
    Merci beaucoup.

    Je n'ai malheureusement pas le temps dans la journée aujourd'hui pour tester, mais ce soir, je vais essayer.
    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut type de Write... ?
    Suite à ta réponse, je suis entrain de tester ton code, pourrais-tu juste me dire de quel type est "Response".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("List Response:<br />");
    Le paramètre "fileName" me sert à récupérer un fichier désigné par l'utilisateur (gràce à une boite de dialogue).
    Et mon objectif est de pouvoir récupérer toute une liste de fichiers *.jpg.

    Ton code va bien dans mon objectif, mais je ne trouve le filtre *.jpg et je n'arrive aps à définir la variable "Response"... (string, ftpwebrequest..).

    Merci
    Anne

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    "Response" permet d'envoyer des données au navigateur. Il n'a pas d'interet dans ton cas. J'aurai bien pu utiliser un label pour afficher le resultat.

    Le code qui t'interesse par contre est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string st = reader.ReadToEnd();
    "st" est la liste de tes fichiers. Il faut que tu boucles dessus pour ne récupérer que ceux qui t'interessent.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Par défaut
    Salut,

    J'obtiens la chose suivante avec ma liste:

    string st = "image1.jpg\r\image2.jpg\r\image3.jpg\r\...\r\... "
    Les fichiers récupérés apparaissent tous en une seule ligne...

    j'aimerai pouvoir les récupérer dans un tableau par exemple, de la façon suivante:
    string listefichier[]:
    listefichier[1]=image1.jpg
    listefichier[0]=image2.jpg
    ...
    ...

    Est-ce que tu as une petite idée sur le problème ??

    MERCI
    Anne

Discussions similaires

  1. [AC-2003] Exporter plusieurs fichiers excel à partir des données d'une requête
    Par Daphnoxbow dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 06/10/2009, 11h41
  2. Alimentation d'un fichier Excel à partir de données Powerpoint
    Par alex75 dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 24/07/2009, 18h15
  3. Créer un fichier texte à partir de données Excel
    Par Olorin56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/01/2008, 13h56
  4. Réponses: 21
    Dernier message: 05/06/2006, 10h49
  5. Réponses: 1
    Dernier message: 24/05/2005, 14h50

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