Les Snippets

Connexion

OPTENIR DANS UNE STRING LA TAILLE D'UN FICHIER EN KO, MO, GO...

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 01/12/2007 22:30:47 et initié par renocmoa [Liste]
Date de mise à jour : 06/09/2009 13:05:29
Vue : 6871
Catégorie(s) : API, Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB 2005
- Delphi 5
- VB6, VBA
- C# 1.x, C# 2.x, C# 3.x
- VB6, VBA
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 18/03/2009
Posté par Charles Racaud [Liste]

Private Type LARGE_INTEGER
  lowpart As Long
  highpart As Long
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As AnyByVal Length As Long)
Private Declare Function StrFormatByteSize64 Lib "shlwapi" Alias "StrFormatByteSizeW" (ByVal dw As CurrencyByVal pszBuf As Long, cchBuf As LongAs Long

' Attention : Un Currency est codé sur 8 octets mais à 4 chiffres après la virgule.
'             Il faut donc diviser par 10000 pour avoir la bonne valeur.
'             StrFormatByteSize64__C(654) retournera 6,23 MB (FAUX)
'             StrFormatByteSize64__C(654 / 10000) retournera 654 bytes
Private Function StrFormatByteSize64__C(dw As CurrencyAs String
  Dim StrSize As String
  StrSize = VBA.String$(64&, Chr$(0))
  Call StrFormatByteSize64(dw, StrPtr(StrSize), 64&)
  StrFormatByteSize64__C = VBA.Left$(StrSize, InStr(StrSize, Chr$(0)) - 1)
End Function

Private Function StrFormatByteSize64__LI(dw As LARGE_INTEGER) As String
  Dim dw__C As Currency
  Call CopyMemory(dw__C, dw, LenB(dw))
  StrFormatByteSize64__LI = StrFormatByteSize64__C(dw__C)
End Function

Private Function StrFormatByteSize64__LL(ByVal nFileSizeLow As LongOptional ByVal nFileSizeHigh As Long = 0As String
  Dim dw As LARGE_INTEGER
  dw.lowpart = nFileSizeLow
  dw.highpart = nFileSizeHigh
  StrFormatByteSize64__LL = StrFormatByteSize64__LI(dw)
End Function

Remarque :
Maximum de 7,99 EB et avec la gestion unicode.

Snippets en rapport avec : Fichier, Api, Taille fichier



Codes sources en rapport avec : Fichier, Api, Taille fichier

{Delphi} OBTENIR LE PROPRIÉTAIRE D'UN FICHIER (WIN32;NTFS)
Je cherchais du code en Delphi pour connaitre le propriétaire d'un fichier, mais je n'ai trouvé que ...

{C / C++ / C++.NET} COPIE AVEC SHFILEOPERATION
Bonjour Voici un exemple de l'utilisation de la fonction SHFileOperation de l'api windows. La ...

{C / C++ / C++.NET} TXT SUPPRIMER LIGNES DOUBLONS (WIN32)
Demo pour cette question du forum: http://www.cppfrance.com/forum.v2.aspx?ID=1234830 Exe qui sup...

{PDA / PocketPC} ECRITURE D'UN FICHIER ANSI PAR LES API
Ce source écrit des données au format ANSI dans un fichier à l'aide des API système. Pourquoi ce ...

{Visual Basic, VB6, VB.NET, VB 2005} FERMER UN FICHIER OUVERT PAR UNE AUTRE APPLICATION
Il vous est deja arrivé de vouloir supprimer un fichier mais de ne pas pouvoir car une application ...

{Delphi} OBJET POUR LA PROJECTION DE FICHIER EN MÉMOIRE (FILE MAPPING)
L’unité MappedFileStream permet d’utiliser la technique de projection de fichier en mémoire de Windo...

{JAVA / J2EE} API POUR FAIRE DES PDF A PARTIE DE FICHIER TEXT
juste il faut compiler la classe sous eclipse par exemple puis: java -classpath C:\path\to\pdf;C:\p...

{Delphi} CRÉATION DE FICHIERS TEMPORAIRES DANS LE DOSSIER TEMPORAIRE COURANT.(API)
Ayant eu besoin de travailler avec des fichiers temporaires, je suis tombé par hasard sur 2 fonction...

{Assembleur} FAIRE FICHIER ISO (MASM32)
Windows 2000 ou supérieur requis. Fait un fichier "F1.iso" depuis un CD ou DVD. N'écrit le iso q...

{Delphi} VERROUILER UN FICHIER
Voici une fonction qui permet de verrouiller un fichier. Et une procedure qui permet de déverrouil...