OpenFIleDialog et récupération de fichiers

Résolu
sliverman Messages postés 83 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 8 juillet 2008 - 9 sept. 2007 à 10:53
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 - 10 sept. 2007 à 09:00
Bonjour à tous, alors voila mon problème...

J'ai un listView, un openFileDialog et j'aimerai récupérér plusieur fichiers dans cette listView donc je met l'openFileDialog en multiselect = true
Ensuite j'aime ce code sur un bouton qui ouvre l'openFileDialog :

if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
               
                string[] files = openFileDialog.FileNames;

                FileInfo file = new FileInfo(openFileDialog.FileName);
                ListViewItem item = new ListViewItem(file.Name);
                item.SubItems.Add(file.Length.ToString());
                listView.Items.Add(item);
            }

Mais le problème est que je récupère seulement le dernier fichier séléctionné dans la boite de dialogue, et si je n'utilise pas FileInfo je crois je ne pourrais pas récupérer les informations voulu et si je n'utilise pas listViewItem je ne pourrais pas faire le contenu dans différentes colonnes...

Merci d'avance

PS : pouvais vous m'indiquer des indications pour récupérer les tag des mp3 ?
       et comment convertir la taille des fichier ouvert qui sont en octets en Ko ?

5 réponses

Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
10 sept. 2007 à 09:00
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    string[] files = openFileDialog.FileNames; // la tu récupère tous les noms de fichier dans un tableau
    foreach(string file in files) // tu parcoure 1 à 1 les fichiers trouvés
    {
                FileInfo fi = new FileInfo(file);
                ListViewItem item = new ListViewItem(fi.Name);
                double size = fi.Length / 1024;
                item.SubItems.Add(size.ToString()); // il faut un string en paramètre
                listView.Items.Add(item);
    }
}

Normalement ça marche.
"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
<!--
3
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 sept. 2007 à 11:02
Salut, 

La page de la doc de la propriété Multiselect l'indique :
"Utilisez la propriété FileNames pour accéder à la liste complète des noms de fichiers sélectionnés."

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 sept. 2007 à 11:03
Et 1Ko = 1024octets

/*
coq
MVP Visual C#
CoqBlog
*/
0
sliverman Messages postés 83 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 8 juillet 2008
9 sept. 2007 à 11:09
Je te remercie, mais quand je fais

FileInfo file = new FileInfo(openFileDialog.FileNames);

il me dit qu'il y a une erreur...

et pour la taille je sais qu'il faut diviser par 1024 mais je ne sais pas comment le mettre car

item.SubItems.Add(file.Length / 1024); ne marche pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 sept. 2007 à 11:24
FileInfo file = new FileInfo(openFileDialog.FileNames);
=> Normal, aucune surchagre de FileInfo ne prend en paramètre un tableau de chaine représentant les chemins d'accès à plusieurs fichiers.
FileNames
FileInfo, constructeurs

item.SubItems.Add(file.Length / 1024);
=> pareil.
Add, méthode

Tu devrais vraiment "perdre" quelques minutes à lire les documentations des éléments que tu utilises, ça t'évitera de perdre du temps sur des problèmes qui n'en sont pas.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous