sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008
-
4 sept. 2007 à 11:18
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
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();
}
}
}
cs_rodcobalt22
Messages postés195Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention16 février 2016 6 sept. 2007 à 09:14
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
cs_rodcobalt22
Messages postés195Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention16 février 2016 4 sept. 2007 à 12:43
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)
sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008 4 sept. 2007 à 19:43
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 ?
cs_rodcobalt22
Messages postés195Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention16 février 2016 5 sept. 2007 à 09:21
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 ;)
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 9 sept. 2007 à 00:13
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