Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Paradigmes informatiques

Retourner la taille d'un fichier > 2 Go

29/07/2008
La fonction FileLen de VB6 retourne la taille d'un fichier. Cependant, celle-ci pose deux problèmes :
- la taille retournée peut être incorrecte en cas de lecture de fichier sur un emplacement réseau, non rafraichi en temps réel
- le type retourné est un Long, limité à 2Go.
Il faut passer par l'ouverture du fichier en mode binaire et renvoyer la position du dernier octet de celui-ci. Le problème est que cette fonction (LOF) renvoie également un Long. Il faut donc recalculer un Double.
Exemple :
' Renvoie la taille d'un fichier, 0 si non trouvé
Public Function getTaille(ByVal FichierSource As String) As Double

    On Error Goto Probleme
    getTaille= 0
    Dim iFreeF As Integer: iFreeF = FreeFile
    Open FichierSource For Binary Access Read As #iFreeF
    Dim lTailleFic As Long: lTailleFic = LOF(iFreeF )

    ' Fichier > 2Go : conversion long en double
    getTaille= CDbl(lTailleFic And &H7FFFFFFF)
    If (lTailleFic < 0) Then
        getTaille= getTaille + 2147483648#
    End If
    Close #iFreeF

FinTaille:
    Exit Function

Probleme:
    Close #FreeF
    Resume FinTaille

End Function
Dernière modification le 18/02/2019 - Quillevere.net

Commentaires

Aucune inscription n'est requise si vous souhaitez

Rechercher sur le site

fr en rss RSS info Informations