Ciao a tutti, ho un nuovo problema.
Vorrei visualizzare il valore della dimensione del file User.home.
ho scritto questo codice:
hSpace = Stat(User.Home).Size
dichiarando come Public la variabile hSpace.
il valore che mi viene restituito è questo: 4096.
Ora mi chiedo: cosa sono? patate, mele...
Poi se al posto di user.home metto "/" mi restituisce il valore occupato nel mio HDD?
sostituendo mi da sempre 4096...
dando da terminale il comando df -h /
mi da questo:
File system Dim. Usati Disp. Uso% Montato su /dev/sda1
220G 34G 176G 17% /
quindi se ho ben capito lo spazio occupato del nel mio HDD è pari a 34 gb.
Perché il comando mi restituisce 4096?
Sono Megabyte, ovvero più o meno 4GB che dovrebbe essere la dimensione della tua Home...
Il comando che hai appena usato non restituisce lo spazio occupato ma la grandezza totale di un file...a te serve la funzione DFree usabile secondo la sintassi:
DIM Dimensione AS Long
Dimensione = DFree(Indirizzo_file)
Si...ti chiedo scusa ma avevo inteso male la richiesta...
Prova con
hSpace = Stat(User.Home, TRUE).Size
Edit: Mi correggo. Analizzando meglio si vede che il comando ti restituisce 4KB poichè esso mostra il risultato in byte...mi correggo per quanto detto prima.
Puoi sempre usare una funzioncina cosi' (questa e' sub a dire il vero, ed e' un adattamento di una mia che mi deve mostrare un messaggio: e' ricorsiva, ma cerco sempre di evitare le shell... tutti i conti alla fine sono solo esempi, ti basta prendere la "misura" che ti interessa.
PUBLIC SUB DestinationSize(spath as string)
DIM File AS String
DIM l AS Long = 0
DIM msg AS String
msg = spath
IF IsDir(spath) = FALSE THEN
Message.Warning("No destination directory yet")
RETURN
ENDIF
FOR EACH File IN RDir(sPath, "*.*")
WITH Stat(spath &/ file)
l = .Size + l
END WITH
NEXT
msg = msg & "\n"
msg = msg & "\nGb size: " & Format(l / 1024 ^ 3, "0.000")
msg = msg & "\nMb size: " & Format(l / 1024 ^ 2, "0")
msg = msg & "\nMb base 1000: " & Format(l / 1000000, "0")
msg = msg & "\nKb size: " & Format(l / 1024, "0")
msg = msg & "\nByte size: " & CStr(l)
Message.Info(msg)
END