Conoscere le dimensioni di un File

1° Esempio:

Inserire in un modulo Bas:

Option Explicit

Public Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
Public Const OPEN_EXISTING = 3
Public Const GENERIC_READ = &H80000000


In un Form da Progetto - Componenti selezionare il controllo Microsoft Common Dialog Control 6.0, ed inserire la CommonDialog ed un CommandButton nel form.

Inserire infine il seguente codice:


Option Explicit

Private Sub Command1_Click()
Dim dimenFile As Long

'Setta il titolo della CommonDialog
CDBox.DialogTitle = "Scegli un file ..."
'Produce un errore quando l'utente preme cancel
CDBox.CancelError = True
On Error GoTo Esci
'Mostra la dialog Box di Apertura File
CDBox.ShowOpen
dimenFile = CreateFile(CDBox.FileName, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
MsgBox "La dimensione del file selezionato è di " + Str$(GetFileSize(dimenFile, 0)) + " byte."
Exit Sub
Esci:
End Sub

Testato su: Windows 98, Windows Me, Windows 2000 Professional

2° Esempio:

Con la nuova funzione di VB6 FileLen.

In un Form da Progetto - Componenti selezionare il controllo Microsoft Common Dialog Control 6.0, ed inserire la CommonDialog ed un CommandButton nel form.

Inserire infine il seguente codice:


Private Sub Command1_Click()
    'Setta il titolo della CommonDialog
    CDBox.DialogTitle = "Scegli un file ..."
    'Produce un errore quando l'utente preme cancel
    CDBox.CancelError = True
    On Error GoTo Esci
    'Mostra la dialog Box di Apertura File
    CDBox.ShowOpen
    MsgBox "La dimensione del file selezionato è di " _
        & FileLen(CDBox.FileName) & " byte"
Esci:
End Sub

Testato su: Windows 98, Windows Me, Windows 2000 Professional