Newsgroup: it.comp.lang.visual-basic
Titolo: Norton Antivirus mi blocca l'applicazione

Salve
Per sapere la dimensione di una directory ho usato il codice:
Surc = "C:\dirdamisurare"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Surc)
s = f.Size
che ho trovato nelle MSDN Libray.
Adesso se eseguo il codice il Norton Antivirus mi blocca l'esecuzione
segnalando un avvertimento che l'applicazione in esecuzione ha eseguito un
operazione simile a quella di un virus. Se ignoro l'avviso tutto funziona
regolarmente.
Come mai un codice che viene fornito da M$ crea questi casini? Ho utilizzato
impropriamente il codice?
Esiste un altro metodo altrettanto semplice per ottenere la dimensione di
una dir senza scrivere pagine di codice e scomodare le API.
Grazie 1K per l'help

 utilizzato impropriamente il codice?
Il codice è giusto, il problema è che Nav ha attivato il blocco degli script
(visto che potrebbero essere pericolosi per il sistema, blah blah..)
Basta disattivarlo in "funzioni di scansione di sicurezza"
--
Dark Hado
This posting is provided "AS IS" with no warranties, and confers no
rights.

 Basta disattivarlo in "funzioni di scansione di sicurezza"
Aggiungo: il NAV è una ciofeca.
Rendo impossibile lavorare in rete con l'antivirus attivo.
Ciao
--
y = f(
http://neodatatype.interfree.it/index.html
)

 Adesso se eseguo il codice il Norton Antivirus mi blocca l'esecuzione
Lascia stare il File Sistem Object, visto che molte grandi aziende nella
loro rete lo tengono disabilitato di default, e io personalmente (ad
esempio) evito come la peste tutti i programmi che ne fanno uso.
Per passarti tutti i file in una directory (e i files delle relative
sottodirectory), usa questo codice che ho postato tempo fa:
http://groups.google.it/groups?selm=9tr52b%244bt8d%241%40ID-94194.news.dfnci
s.de
Aggiungi il codice qui sotto, ed otterrai la dimensione che ti interessa:
Private Function OccupazioneDirectory(sNomeDir as string) as double
   Dim a As Variant
   Dim r As Long
   Dim lTotSize As Double
   a = RitornaArrayElencoFilesDaPathRicorsiva(sNomeDir, "*.*")
   lTotSize = 0
   If UBound(a) > -1 Then
      For r = 0 To UBound(a)
         lTotSize = lTotSize + FileLen(a(r))
      Next
   End If
   OccupazioneDirectory=lTotSize
End function
Ciao
*Roby*

Ciao
Ho fatto come dici e funziona solo che ci mette un' eterntà, mentre con il
File Sistem Object ci mette un attimo.
E' troppo lento per la mia applicazione le dimensioni della dir si aggira
dai 400 MB in su con molte sottocartelle.
Non esiste un metodo più veloce.
grazie nuovamente


 File Sistem Object ci mette un attimo.
Sulla mia macchina i tempi sono molto simili per la lettura di circa 2200
file distribuiti su parecchie cartelle.
In ogni caso ti conviene mettere mano al codice che ti ho passato; potresti
partire dalla RitornaStringaElencoFilesDaPathRicorsiva e creare una funzione
nuova che ritorni solo la dimensione totale dei files, così ti risparmi il
secondo ciclo per contare le dimensioni e tutto il lavoro di salvare i nome
files un una variabile strana e poi trasformarli in array.
La mia è una funzione generalista, tu hai bisogno di qualcosa molto
specializzato se maneggi quella mole di dati lì.
Ciao
*Roby*