Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRER LA TAILLE D'UN FICHIER À LA FAÇON DE L'EXPLORATEUR WINDOWS


Information sur la source

Catégorie :Fichier / Disque Classé sous : taille, fichier, filesize, octet, byte Niveau : Débutant Date de création : 05/03/2003 Date de mise à jour : 05/03/2003 13:00:26 Vu : 3 908

Note :
7,75 / 10 - par 4 personnes
7,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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.
 

Commentaires et avis

signaler à un administrateur
Commentaire de fluminis le 05/09/2003 14:09:18

simple mais pratique
il fallait y penser

signaler à un administrateur
Commentaire de tcedi le 06/09/2003 11:06:38

Merci pour ce premier commentaire, fluminis !

Je me disais que cette source n'intéressait personne !

Bonne prog !

signaler à un administrateur
Commentaire de fluminis le 06/09/2003 22:35:20

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.
++

signaler à un administrateur
Commentaire de maup le 14/11/2003 15:03:46

Ca tombe bien j'en avais besoin merci
A+

signaler à un administrateur
Commentaire de ph2268 le 15/11/2003 17:00:23

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....

signaler à un administrateur
Commentaire de soldier8514 le 18/06/2006 20:52:42

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 ) __

signaler à un administrateur
Commentaire de tcedi le 18/06/2006 22:46:43

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)...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment déterminer la taille d'un très gros fichier ? [ par MTB ] J'ai besoin de capturer la taille d'un très gros fichier (valeur excédant la capacité d'une variable "long"). Les fonctions traditionelles (FileLen, f modifier un fichier (octet) [ par Yoshi ] Salutj'aimerai modifier un fichier en hexadécimal, pour mon patchex: modifier un proget aussi supprimer des octets ou en rajouter CRYPTAGE [ par FREDM ] Je crypte actuellement des fichiers en applicant à chaque octet une clef XOR l'octet lu. Mon problème est qu'en C en prenant un bufer de 1024 le crypt Récupérer la taille d'un fichier sur un serveur distant [ par Sab ] Salut,Comment dois-je procéder pour récupérer la taille d'un fichier sur un serveur existant ? J'ai essayé FileLen mais ça ne passe pas.Merci pour vot Extraire les données d'un fichier en BINAIRE ? [ par nostromo2022 ] lut, voilà j'aimerai savoir s'il est possible d'extraire directement le code binaire d'un fichier.J'arrive à extraire les données octet par octet mais Extraire les données d'un fichier en BINAIRE ? [ par nostromo2022 ] lut, voilà j'aimerai savoir s'il est possible d'extraire directement le code binaire d'un fichier.J'arrive à extraire les données octet par octet mais Envoi d'un fichier avec Winsock de grosse taille [ par Spylover ] Si quelqu'un a déja fait un prog en VB pour expédier des fichiers, je suis preneur. Je dois mal le réaliser car mon SOFT ne gère pas plus de qques még Connaître la taille du fichier distant. [ par Jonef ] Bonjour,j'aimerais savoir comment connaître la taille d'un fichier stocké sur un serveur http:// à partir de sont URL.Merci bcp.A+ Probleme de taille avec les TexteBOX [ par KoZo ] kan j'ouvre un fichier texte ds un textbox et que ce fichier texte est trop grans ou gros ya un msg d'erreur comment eviter ce msg et ainsi permettra ??? Taille max d'une TextBox ?????? [ par Daniel ] Bonjour,J'utilise une TextBox pour afficher un fichier text...par la métode :____________________________________________________________If Fichier_a_


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.