Conoscere la dimensione di un file
Per conoscere la dimensione di un file, si potranno adottare almeno cinque modalità.
Indice
Uso della funzione Lof()
La funzone Lof() restituisce proprio la lunghezza in byte di un file:
Public Sub Main() Dim fl As File fl = Open "/percorso/del/file" For Read Print "La dimensione del file è: "; Lof(fl); " byte" fl.Close End
Uso della proprietà .Size della Classe Stat
La Classe Stat restituisce una serie di informazioni relative ai file.
Un esempio può essere il seguente:
Public Sub Button1_Click() Dim s As String s = Stat("/percorso/del/file").Size Print "La dimensione del file è: "; s; " byte" End
Uso della funzione Len()
Useremo la funzione Len() per conoscere la lunghezza della stringa di dati restituita dalla funzione .Load della Classe File:
Public Sub Button1_Click() Dim s As String s = File.Load("/percorso/del/file") Print "La dimensione del file è: "; Len(s); " byte" End
Uso della funzione Seek
Potremo usare anche leggere la quantità di dati contenuti in un file con la funzione Seek, come ad esempio:
Public Sub Main() Dim fl As File Dim i As Integer fl = Open "/percorso/del/file" For Read While Not Eof(fl) inc i Seek #fl, i Wend Print "La dimensione del file è: "; i; " byte" fl.Close End
Uso della proprietà .Count di un vettore
Potremo usare anche la proprietà .Count di un vettore per conoscere - dopo l'intera lettura di un file - la dimensione del file medesimo, come ad esempio:
Public Sub Main() Dim fl As File Dim bb as New Byte[] Dim b As Byte fl = Open "/percorso/del/file" For Read While Not Eof(fl) Read #fl, b bb.Add(b) Wend Print "La dimensione del file è: "; bb.Count; " byte" fl.Close End
o anche così usando il metodo Read() della variabile vettoriale di tipo Byte[]:
Public Sub Main() Dim fl As File Dim bb as Byte[] fl = Open "/percorso/del/file" With bb = New Byte[Lof(fl)] .Read(fl) End With Print "La dimensione del file è: "; bb.Count; " byte" fl.Close End
Uso della funzione esterna Stat di C
Si potrà, volendo, utilizzare anche la funzione esterna stat() di C con le modalità indicate in questa pagina della Wiki.
Uso di alcune funzioni della libreria stdio.h di C
Si potranno, volendo, utilizzare anche alcune funzioni esterne della libreria stdio.h di C, come segue:
Library "libc:6" Private Const SEEK_END As Integer = 2 ' FILE *fopen(const char *path, const char *mode) Private Extern fopen(path As String, mode As String) As Pointer ' int fseek(FILE *stream, long offset, int whence) Private Extern fseek(fs As Pointer, offset As Long, whence As Integer) As Integer ' long ftell(FILE *stream) Private Extern ftell(fs As Pointer) As Long ' int fclose(FILE *stream) Private Extern fclose(fs As Pointer) As Integer Public Sub Main() Dim fl As Pointer Dim l As Long fl = fopen("percorso/del/file", "r") ' Determina la dimensione del file: fseek(fl, 0, SEEK_END) l = ftell(fl) Print "Numero di byte nel file: "; l fclose(fl) End