Bonjour,
Je suis entrain de faire un mini explorateur et je voudrai à partir de la taille d'un fichier afficher sa taille en Ko, Mo, Go, etc...
Je voudrai savoir s'il y a un algorithme o composant qui fait cela?
Merci par avance.
Bonjour,
Je suis entrain de faire un mini explorateur et je voudrai à partir de la taille d'un fichier afficher sa taille en Ko, Mo, Go, etc...
Je voudrai savoir s'il y a un algorithme o composant qui fait cela?
Merci par avance.
Je n'i jamais trouvé une telle fonction toute faite: obligé de faire la mienne.
La voici, des fois que cela t'interesse:
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #region Fonction ConvertirTaille /// <summary> /// Permet de convertir un nombre d'octet dans un format plus simple. /// Ex: 1024 octets = 1 Ko /// </summary> /// <param name="taille_octet"></param> /// <returns>La taille, convertit en octet, Kilo-octet, etc...</returns> public string ConvertirTaille(long taille_octet) { string final_size = String.Empty; if ( taille_octet < 1024 ) { final_size = Convert.ToString(taille_octet) + " o"; } if ( (taille_octet/1024) > 1 ) { // 1024 octets = 1 Ko final_size = Convert.ToString(taille_octet/1024) + " Ko"; } if ( (taille_octet/1024) >= 1024 ) { // 1048576 octets = 1 Mo final_size = Convert.ToString(taille_octet/1048576) + " Mo"; } if ( (taille_octet/1024) >= 1048576 ) { // 1073741824 octets = 1 Go final_size = Convert.ToString(taille_octet/1073741824) + " Go"; } return final_size; } #endregion![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Merci de penser au tag Résolu![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
et comment tu fais pour choisir dans quelle unité tu veux ta réponse ???
moi je proposerai quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public enum SizeUnit : short { Ko = 1, Mo = 2, Go = 3 } public string ConvertSize( long octets, SizeUnit unit ) { int x = System.Convert.ToInt16(unit); double p = System.Math.Pow(1024, x); double size = octets / p; return size.ToString() + " " + unit.ToString(); }
tu choisis pasEnvoyé par Keihilin
J'ai jamais dit que c'était parfait. Ca fonctionnait pour le petit truc que j'avais besoin de faire, c'est tout![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Envoyé par Morpheus
bah, je t'en veux pas tu sais, t'es encore jeuneEnvoyé par Morpheus
![]()
J'avais pas mis le tag résolu car ce n'était pas encore ça, mais maintenant c'est parfait!
J'espère que tu ne m'en veux pas d'avoir modifier un peu ta fonction! ;-)
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 /// <summary> /// Permet de convertir un nombre d'octet dans un format plus simple. /// Ex: 1024 octets = 1 Ko /// </summary> /// <param name="taille_octet"></param> /// <returns>La taille, convertit en octet, Kilo-octet, etc...</returns> private string normalizeSize(long taille_octet) { string final_size = String.Empty; if ( taille_octet < 1024 ) { if (taille_octet >= 0) final_size = Convert.ToString(taille_octet) + " octet(s)"; else final_size = "0 octet"; } if ( Decimal.Divide(taille_octet, 1024) >= 1 ) { // 1024 octets = 1 Ko final_size = Decimal.Round(Decimal.Divide(taille_octet, 1024), 2).ToString() + " Ko"; } if ( Decimal.Divide(taille_octet, 1024) >= 1024 ) { // 1048576 octets = 1 Mo final_size = Decimal.Round(Decimal.Divide(taille_octet, 1048576), 2).ToString() + " Mo"; } if ( Decimal.Divide(taille_octet, 1024) >= 1048576 ) { // 1073741824 octets = 1 Go final_size = Decimal.Round(Decimal.Divide(taille_octet, 1073741824), 2).ToString() + " Go"; } return final_size; }
Si c'est parfait pour toi, tant mieux![]()
ps: tu as regardé sinon la technique proposée par Keihilin ?
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Partager