29/07/2008La 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