Accueil > > > GETFILESIZE - RÉCUPÉRER LA TAILLE DE FICHIERS, MÊME > 4 GO
GETFILESIZE - RÉCUPÉRER LA TAILLE DE FICHIERS, MÊME > 4 GO
Information sur la source
Description
Une mini source pour répondre a une question du Forum... Une fonction "utile". FileLen permet de récuperer la taille des fichiers <= 4Go (capacité d'un Long) l'API GetFileSizeEx, ferait directement l'affaire, mais n'est pas présent sur tous les OS. j'utilises donc l'API GetFileSize, qui fournit le résultat dans deux Long (High & Low) qu'il suffit de rassembler
Source
- Private Const FILE_SHARE_READ As Long = &H1
- Private Const GENERIC_READ As Long = &H80000000
- Private Const OPEN_EXISTING As Long = 3
- Private Const OPEN_ALWAYS As Long = 4
- Private Const INVALID_HANDLE_VALUE As Long = &HFFFFFFFF
-
- Private Declare Function APIGetFileSize Lib "kernel32.dll" Alias "GetFileSize" (ByVal hFile As Long, ByRef lpFileSizeHigh As Long) As Long
- Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
- Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByRef lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
- Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
-
- Public Function GetFileSize(ByRef vsFilePath As String) As Currency
- Dim hFile As Long
- Dim xnFileSize(1) As Long
- hFile = CreateFile(vsFilePath, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, 0, 0)
- If hFile <> INVALID_HANDLE_VALUE Then
- xnFileSize(0) = APIGetFileSize(hFile, xnFileSize(1))
- CopyMemory GetFileSize, xnFileSize(0), LenB(GetFileSize)
- GetFileSize = GetFileSize * 10000
- CloseHandle hFile
- End If
- End Function
Private Const FILE_SHARE_READ As Long = &H1
Private Const GENERIC_READ As Long = &H80000000
Private Const OPEN_EXISTING As Long = 3
Private Const OPEN_ALWAYS As Long = 4
Private Const INVALID_HANDLE_VALUE As Long = &HFFFFFFFF
Private Declare Function APIGetFileSize Lib "kernel32.dll" Alias "GetFileSize" (ByVal hFile As Long, ByRef lpFileSizeHigh As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByRef lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Public Function GetFileSize(ByRef vsFilePath As String) As Currency
Dim hFile As Long
Dim xnFileSize(1) As Long
hFile = CreateFile(vsFilePath, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, 0, 0)
If hFile <> INVALID_HANDLE_VALUE Then
xnFileSize(0) = APIGetFileSize(hFile, xnFileSize(1))
CopyMemory GetFileSize, xnFileSize(0), LenB(GetFileSize)
GetFileSize = GetFileSize * 10000
CloseHandle hFile
End If
End Function
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Problème avec du calcul [ par Wizard17 ]
SalutJe suis en train de faire une application avec détection des lecteurs et leurs taille, je calcule donc leur taille pour chacunEx : Je clique dans
Lister les fichiers d'un répertoire donné et leur taille [ par seb ]
Désol', je suis nouveau sous VB...Merci de me répondre, en l'occurence, je voudrais énumérer les DLLs d'un répertoire donné (c:\Windows\System)
'Overflow' avec gestion fichiers [ par Neurolog ]
Salut!Je voudrais savoir pk j'obtiens ce msg d'erreur 'dépassement de capacité' lors de ce programme:--Dim Taille As IntegerDim FreeFileNumber As Curr
Taille ZIP & Répertoire [ par Chuck ]
J'aurais besoin de deux chose, alors sur les deux vous devez surement avoir une réponse.1. Comment connaître la taille en octés d'un répertoire (avec
Connaitre la taille des fichiers attachés Outlook [ par daivil ]
Bonjour tout le monde,J'ai besoin de réaliser une macro Outlook qui detecte la taille des fichiers attachés pour par exemple empecher les employés d'e
Recherche de fichiers sur un réseau [ par zombapsa ]
Bonjour,Comment faire pour rechercher des fichiers dont je ne connais pas le nom sur un serveur (et non pas en local) sans créer de lecteur réseau ?Av
envoi de fichiers? [ par alucard1982 ]
Je dois faire un formulaire qui permettrai d'envoyer sur un sites des fichiers images (jpeg, gif...), mais je débute et m'embrouille pas mal. En
Taille de dossier sur le disque [ par Jamytheboss ]
Comment faire pour avoir la taille d'un dossier (pas un fichier) sur le disque. Ceci, sans être obligé de le parcourir et de sommer la taill
Taille base access limité a 2 GO ??? [ par globule ]
Bonjour, Je viens de me rendre compte que la taille d'une base maximum est de 2GO avec access 2002 et ADO (si on insere des images dedant on peut atte
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|