Convertir arraylist en string

tirisus Messages postés 5 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 6 septembre 2007 - 26 août 2007 à 00:07
tirisus Messages postés 5 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 6 septembre 2007 - 30 août 2007 à 15:49
Bonsoir a tous voila je souhaite telecharger via ftp tout les fichiers d'un dossier
j'arrive a lister les fichier dans un arraylist dans un tableau de string  mais  quand je regarde ce qu'il mais dans le tableau : il met les droit l'utilisateur la date et enfin le nom du fichier

et je souhaiterais optenir SEULEMENT LE NOM DU FICHIER QUELQUN AURAIS UNE SOLUTION?

voici mon bout de code pour que vous y voyez plus clair

 ArrayList fichiers = new ArrayList();
                lfichiers = new string[200];
                fichiers = ftplib.List();
               

                foreach (string fichier in fichiers)
                {
                    lfichiers[cpt1] = fichier;
                    cpt1++;
                    MessageBox.Show(fichier, "Button Clicked",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }

                for (cpt2 = 0; cpt1 > cpt2; cpt2++)
                {
                    MessageBox.Show(lfichiers[0]+"***" +lfichiers[1], "Button Clicked",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    ftplib.OpenDownload(lfichiers[cpt2], chemin1 + "/Gestsource/" + lfichiers[cpt2]);
                    while (ftplib.DoDownload() > 0)
                    {
                        perc = (int)((ftplib.BytesTotal * 100) / ftplib.FileSize);
                        label1.Text = "Downloading: " + perc;
                        progressBar1.PerformStep();
                    }

cela me bloque reelement je serais vraiment reconnaissant si qunqun avaiot une solution

merci d'avance a ceux qui essayerons de m'aider.

3 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 août 2007 à 09:19
Salut,
Une ArrayList est collection non-typée. Si tu dois y mettre uniquement des strucs, utilises donc une List<string> (.NET 2) pour dérive de CollectionBase (.NET 1).
Ensuite, il faudrait savoir ce que fais (et retourne) ftplib.List(); parce que sinon on pourra pas t'aider. De quel type est cet object?

<hr />
-Blog-
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
27 août 2007 à 06:17
1. Pourquoi partir d'une liste et le trasnférer dans un tableau de string de taille fixe ? Ici, si ton nombre d'élément dans ta liste dépasse 200, ton programme plante. Je te conseil de faire de lfichier un List<string> (using System.Collections.Generic;) si tu dispose de .Net 2, et ce seulement si le fait de transférer ta liste dans une autre liste est vraiment nécessaire.

2. ftplib contient surement des objets qu'il dépose dans une liste. Toi, lorsque tu fait lfichiers[cpt1] = fichier;, tu appel implicitement la fonction toString();. L'objet doit disposer d'une propriété FileName ou truc du genre, que tu pourrais aller chercher directement, du style lfichier[cpt1] = ((NomClasse)fichier).FileName;

3. A titre indicatif, la concaténation de chaine comme sa, c'est moche. MessageBox.Show(lfichiers[0]+"***" +lfichiers[1], "Button Clicked",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); pourrait facilement s'écrire MessageBox.Show(String.Format("{0}***{1}",lfichiers[0],lfichiers[1]), "Button Clicked",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

Supposant que ftplib.List(); retourne une liste d'objet de type MaClasse comprenant une propriété FileName, voila l'alternetive complete que je te propose:

                ArrayList fichiers = ftplib.List(); new ArrayList(); 
                string lastname = "";
                for( int i = 0; i < fichiers.Count; ++i )
                {
                    string name = ((MaClasse)fichiers[i]).FileName;
                    MessageBox.Show(String.Format("{0}***{1}",lastname,name), "Button Clicked",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
                    lastname = name;
                    ftplib.OpenDownload(name,chemin1 + "/Gestsource/" + name);
                    while (ftplib.DoDownload() > 0)
                    {
                        perc = (int)((ftplib.BytesTotal * 100) / ftplib.FileSize);
                        label1.Text = "Downloading: " + perc;
                        progressBar1.PerformStep();
                    }
                }
Eric
0
tirisus Messages postés 5 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 6 septembre 2007
30 août 2007 à 15:49
désolé de pas avoir repondu plus top j'ai des eu des ti probs .
Merci pour se bout de code j'essayerais se soir ^^
0
Rejoignez-nous