Conoscere la dimensione di un file

Da Gambas-it.org - Wikipedia.

Per conoscere la dimensione di un file, si potranno adottare almeno cinque modalità.


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