PDA

View Full Version : Spazio occuppato da una cartella


Carmen
15-10-2005, 21:41
Ciao;

Da giorni impazzisco con il codice postato quì sotto per poter determinare lo spazio di una cartella. Quando la cartella supera le dimenzioni indicare mi dovrebbe comparire un messaggio che mi avvisa.

Con questo codice funziona a volte, mentre altre volte no. Spero che qualcuno di voi possa aiutarmi a capire dove sbaglio.

Lavoro con VB. Grazie...


Set FSO = CreateObject("Scripting.FileSystemObject")
Path = (App.Path & "\MiaCartella\")
Set MyFolder = FSO.GetFolder(Path)

If verifica.value = True Then
dimMax = 4600 'dimenzione di un DVD
Else
dimMax = 650 'Dimenzione di un CD
End If

If (MyFolder.Size / 1048576) > dimMax Then MsgBox "Dimenzione SUPERIORE"

Carmen
16-10-2005, 11:44
Possibile che nessuno possa abbia una soluzione per il mio problema???

:confused: :doh:

matpez
16-10-2005, 17:43
Io ereo più sicuro con il fatto che devi sfogliare tutti i file in quella cartella e alla fine sai uanto occupa... altrimenti se ci affidiamoa lle funzioni che fanno tutto loro magari alla fine nn funzionao... ;)

Ti posto un esempio per sfogliare i file dentro ad una cartella... li basta che implementi il codice che quando trovi un file ne calcoli la sua dimensione. :p

Carmen
17-10-2005, 20:46
Ciao;

O provato il tuo esempio, aggiungendo il calcolo delle dimenzione dei file trovati funziona, però diventa "a mio giudizio" troppo dispendioso quando si tratta di elaborare troppi file e cartelle.

Il codice che io avevo postato lo modificato così:

Set FSO = CreateObject("Scripting.FileSystemObject")
Path = (App.Path & "\moduli\rec\audio\")
Set MyFolder = FSO.GetFolder(Path)

If verifica.value = True Then
dimMax = 4600 'GB
If Format(CLng((MyFolder.Size / 1048576)), "######") > CLng(dimMax) Then msgbox "Dimenzione superata per DVD"
Else
dimMax = 600 'MB
If Format(CLng((MyFolder.Size / 1048576)), "######") > CLng(dimMax) Then msgbox "Dimenzione superata x CD"
End If

In pratica Format(CLng((MyFolder.Size / 1048576)), "######") mi ritorna la dimenzione in MB quindi faccio ad esempio:

Se la cartella e di 721 quindi > di 600 Visualizzo avviso per CD
Se la cartella e di 4689 quindi > di 4600 Visualizzo avviso per DVD

Al momento sembra funzionare. Magari se qualcuno può dirmi se effettivamente è corretta oppure no, gli e ne sarei grata.

Ciao