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.
Version imprimable
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:
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
génial, merci beaucoup!
Merci de penser au tag Résolu :)
et comment tu fais pour choisir dans quelle unité tu veux ta réponse ???
moi je proposerai quelque chose comme :
Code:
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 pas :)Citation:
Envoyé 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 :wink:
:mrgreen:Citation:
Envoyé par Morpheus
bah, je t'en veux pas tu sais, t'es encore jeune :wink:Citation:
Envoyé 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:
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 :wink:
ps: tu as regardé sinon la technique proposée par Keihilin ?