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 660 fois - Téléchargée 41 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
18 juin 2006 à 22:46
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
18 juin 2006 à 20:52
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
15 nov. 2003 à 17:00
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
14 nov. 2003 à 15:03
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
6 sept. 2003 à 22:35
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.