Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    Calcolare il peso di una cartella e sottocartelle

    Ciao a tutti, ho scritto questa funzione che restituisce il peso in MB di una cartella e relative sottocartelle. Se la eseguo su una cartella abbastanza profonda e lontana dalla root del sito nessun problema, ma quando parto dalla root mi dà questo errore:

    Microsoft JET Database Engine error '80004005'

    Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita.

    La linea a cui viene attribuito l'errore è quella in rosso:
    codice:
    Function PesoCartelle(ByVal strPercorso)
    
       Dim fso
       Dim rootFolder
       Dim subFolders
       Dim Folder
       Dim Files
       Dim File
       PesoCartelle = 0
    
       Set fso = Server.CreateObject("Scripting.FileSystemObject")
       strPercorso = Server.MapPath(strPercorso) 
       Set rootFolder = fso.GetFolder(strPercorso)
       Set subFolders = rootFolder.SubFolders
       Set Files = rootFolder.Files
    
       For Each File In Files
          PesoCartelle = PesoCartelle + Round((File.Size/1024/1024), 2)
       Next
    
       For Each folder in subFolders
          PesoCartelle = PesoCartelle + PesoCartelle(strPercorso & "/" & folder.Name)    
       Next
    
    
       Set subFolders = Nothing
       Set rootFolder = Nothing
       Set fso = Nothing
    
    End Function
    Come posso risolvere?

  2. #2
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    ma questa
    codice:
    Function PesoCartelle(ByVal strPercorso)
    
       Dim fso
       Dim rootFolder
       Dim subFolders
       Dim Folder
       Dim Files
       Dim File
       PesoCartelle = 0
    
       Set fso = Server.CreateObject("Scripting.FileSystemObject")
       strPercorso = Server.MapPath(strPercorso) 
       Set rootFolder = fso.GetFolder(strPercorso)
       PesoCartelle = Round((rootFolder.size/1024/1024), 2) 
       Set rootFolder = Nothing
       Set fso = Nothing
    non va bene?
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  3. #3
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Originariamente inviato da wallrider
    ma questa
    codice:
    Function PesoCartelle(ByVal strPercorso)
    
       Dim fso
       Dim rootFolder
       Dim subFolders
       Dim Folder
       Dim Files
       Dim File
       PesoCartelle = 0
    
       Set fso = Server.CreateObject("Scripting.FileSystemObject")
       strPercorso = Server.MapPath(strPercorso) 
       Set rootFolder = fso.GetFolder(strPercorso)
       PesoCartelle = Round((rootFolder.size/1024/1024), 2) 
       Set rootFolder = Nothing
       Set fso = Nothing
    non va bene?
    Argh, non sapevo che la proprietà Size desse la dimensione della cartella comprendente tutte le sottocartelle e relativi files...



    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.