OpenFIleDialog et récupération de fichiers [Résolu]

Signaler
Messages postés
83
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2008
-
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
-
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

Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
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
<!--
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Et 1Ko = 1024octets

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
83
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
8 juillet 2008

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
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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
*/