Récupération de la taille de plusieurs fichier [Résolu]

sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 4 sept. 2007 à 11:18 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 9 sept. 2007 à 00:13
Bonjour à tous, alors voila, j'ai un listBox avec comme headerNom et Taille et je voudrais justement récupéré la taille des fichier que je choisi avec mon openFileDialog car j'ai trouvé un bout de code qui permet de récupérer la taille d'un fichier dans un Label mais pas dans l'header Taille. Et j'aimerai par la suite pouvoir lire les Tap mp3 toujours avec des Header ( Artiste, Chanson, etc...). Et encore deux questions , comment récupère ton le nom du fichier séléctionner dans l'openFileDialog ( sans le chemin complet ) ? Et comment peut on communiquer entre deux Form ?

En vous remerciant d'avance.

Voici mon code au cas ou :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Repertoire
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ColumnHeader header1, header2;
            header1 = new ColumnHeader();
            header2 = new ColumnHeader();

            header1.Text = "Nom";
            header1.Width = 570;
            header2.Text = "Taille";
            header2.Width = 80;

            listView1.Columns.Add(header1);
            listView1.Columns.Add(header2);
        }

        private void listView1_DoubleClick(object sender, EventArgs e)
        {
            Form Form2 = new Form2();
            Form2.ShowDialog();
        }

        private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                // On récupère, dans un tableau, la liste des fichiers sélectionnés
                string[] files = openFileDialog1.FileNames;

                // On les ajoute au listview
                foreach (string file in files)
                {
                    ListViewItem ItemFile = new ListViewItem(file);
                    ItemFile.SubItems.Add(Size.ToString());
                    listView1.Items.Add(ItemFile);
                }
            }
            FileStream sizeFile = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
            fileSizeFromLabel.Text = "File Size ( " + (sizeFile.Length / 1024) + " Ko)";
            sizeFile.Close();
        }

    }
}
Afficher la suite 

7 réponses

Répondre au sujet
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 6 sept. 2007 à 09:14
+3
Utile
tu sais le prend pas mal mais parfois il faut réflêchir un peu.

Je te montre comment obtenir la taille de ton fichier en octet.
Ensuite, c'est qu'un simple division en fonction du nombre de chiffre. L'objet FileInfo ne peut pas être convertie en taille de fichier, mais sa propriété Length (qui te retourne la taille du fichier) peut subir cette convertion.

Je te montre l'exemple mais il serait bien que tu réflêchisse un peu plus la prochaine fois.

FileInfo ofile =

new FileInfo(@"c:\temp\toto.xml");

string strTampon = ofile.Length.ToString();

float fltTailleAffichable = 0;

// convertion en Kilo Octet

if( strTampon.Length > 3)
{

// Ko
      fltTailleAffichable = ofile.Length / 1024;
}
Voilà, maintenant à toi d'appronfondir si tu veux effectué des convertions précises
Content de t'avoir Aider

RodCobalt22, vous salue bien ;-)
!! N'oubliez pas le TAG résolue ^^ par respect pour les autres lecteurs
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_rodcobalt22
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 4 sept. 2007 à 12:43
0
Utile
Je pense que l'objet FileInfo pourrais répondre à pas mal de tes questions.
il contient pas mal de propriété et méthode qui te permettrons de récupérer le nom du fichier avec ou sans extension, sa taille, son chemin ...

Par contre, pour les TAG MP3, c'est un peu plus compliquer que ça il me semble.
Fais une recherche mais je crois que tu dois lire ces informations directement dans le flux du fichier MP3 (Je peux me tromper)
Commenter la réponse de cs_rodcobalt22
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 4 sept. 2007 à 19:43
0
Utile
Merci de tes info, alors pour le moment j'essaye de récupérer la taille d'un fichier dans un textBox1 avec FileInfo

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = openFileDialog.FileName;
                FileInfo file = new FileInfo(openFileDialog.FileName);
                textBox2.Text = (file.Length);
           }
J'ai donc le code ci-dessus, mais il me dit impossible de convertir implicitement le type "long" en "string", j'ai par la suite essayé de faire un Convert mais rien à faire...et aussi si j'arrive à faire cela comment récupérer la taille du fichier en Mo ou Ko selon le fichier choisi ?

Merci d'avance
Commenter la réponse de sliverman
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 5 sept. 2007 à 09:04
0
Utile
rajoute un .ToString() derrière ton length, je pense que cela fera l'affaire.
Commenter la réponse de cs_rodcobalt22
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 5 sept. 2007 à 09:21
0
Utile
Oups pa lu jusqu'au bout (Dslé les admin). pour récupérer la taille en Mo il suffit de faire la conversion toi même mais fait attention à prendre la vrai valeur du kilo octet.
Pour le faire en fonction de la taille du fichier, un fois la taille convertie en string compte le nombre de caractère (".Length" sur la chaine) et détermine quelle échelle de valeur sera intéressante.
Je n'en dis pas plus ;)
Commenter la réponse de cs_rodcobalt22
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 5 sept. 2007 à 13:23
0
Utile
Merci pour ton aide, sa marche impec ^^. Donc mataintenant quand tu dis qu'il faut faire la conversion, c'est ma variable file que je convertit ?
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 9 sept. 2007 à 00:13
0
Utile
Salut,

Au lieu de passer par une conversion en chaine de caractères pour tester la longueur, il voudrait mieux faire la détermination d'unité directement sur la valeur.

Si >= 1099511627776, utiliser unité To
Sinon si >= 1073741824, utiliser unité Go
Sinon si >= 1048576, utiliser unité Mo
Sinon si >= 1024, utiliser unité Ko

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.