Récupérer la taille d'un fichier à la façon de l'explorateur windows

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 131 fois - Téléchargée 39 fois

Contenu du snippet

La fonction TailleFichieroKoMoGo permet de récupérer la taille d'un fichier à la façon de l'Explorateur Windows. C'est-à-dire d'utiliser l'unité appropriée (octet, Ko, Mo, Go), de limiter le nombre de chiffres après la virgule selon le nombre de chiffres avant la virgule, de ne pas arrondir (juste tronquer), ...

Source / Exemple :


Public Function TailleFichieroKoMoGo(Chemin As String) As String
    Dim Taille
    Dim Valeur
    Taille = FileLen(Chemin)
    If Taille >= 1024 Then
        Taille = Taille / 1024
        If Taille >= 1024 Then
            Taille = Taille / 1024
            If Taille >= 1024 Then
                Taille = Taille / 1024
                If Asc(StrReverse(Left(Taille, 4))) = 44 Then
                    Valeur = Left(Taille, 3)
                Else
                    Valeur = Left(Taille, 4)
                End If
                TailleFichieroKoMoGo = Valeur & " Go"
            Else
                If Asc(StrReverse(Left(Taille, 4))) = 44 Then
                    Valeur = Left(Taille, 3)
                Else
                    Valeur = Left(Taille, 4)
                End If
                TailleFichieroKoMoGo = Valeur & " Mo"
            End If
        Else
            If Asc(StrReverse(Left(Taille, 4))) = 44 Then
                Valeur = Left(Taille, 3)
            Else
                Valeur = Left(Taille, 4)
            End If
            TailleFichieroKoMoGo = Valeur & " Ko"
        End If
    Else
        If Taille < 2 Then
            Valeur = " octet"
        Else
            Valeur = " octets"
        End If
        TailleFichieroKoMoGo = Taille & Valeur
    End If
End Function

Conclusion :


Vu l'extrème simplicité du code, je n'ai pas mis de commentaires.

REMARQUE : Dans certains cas, la valeur retournée par la fonction ne correspondra pas exactement à celle de l'Explorateur Windows. C'est normal !!! J'ai décidé d'utiliser 1024 comme référence pour le passage à l'unité supérieure.

A voir également

Ajouter un commentaire

Commentaires

tcedi
Messages postés
59
Date d'inscription
samedi 27 juillet 2002
Statut
Membre
Dernière intervention
11 septembre 2003
-
C'est clair, Soldier8514 !

FileLen retourne le nombre d'octets d'un fichier sous forme d'un entier long (Long).
Limite : 1,9999999999 Go, pour être exact !
Au delà, on passe dans les négatifs jusque plus ou moins 4 Go.

Les APIs du système d'exploitation sont là pour combler les faiblesses du VB (et de FileLen)...
soldier8514
Messages postés
295
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2014
1 -
filelen sur un fichier de plusieurs GiGa ???!!!_ euh tu risque davoir de gros pépins dans tes programmes avec ça (valeurs négatives retournée par filelen dès que tu essaieras sur un fichier de plusieurs gigas ) __
ph2268
Messages postés
2
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
15 novembre 2003
-
ouais sympa.
dans le même genre d'idée, j'aimerai récupérer le nb de dpi.
info donnée par xp lorsqu'on fait propriété/ résumé/ avancé sur une image. si qq'un a une idée....
cs_maup
Messages postés
2
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
29 septembre 2004
-
Ca tombe bien j'en avais besoin merci
A+
fluminis
Messages postés
73
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
20 juin 2005
-
c'est sur que c'est pas du meme niveau que ton prog de mise à jour par internet mais moi ca m'a donné l'idée et je l'ai refait à ma manière dans un de mes progs.
++

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.