Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Retourner la taille d'un fichier> 2 Go

29/07/2008
La fonction FileLende VB 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 le réseau, non rafraichi en temps réel
- le type retourné est un Long, limité à 2Go.

Il faut passer par l'ouverture en mode binaire du fichier 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 09/03/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations