Newsgroup: it.comp.lang.visual-basic
Titolo: Trovare e eliminare files

Salve a tutti,
in una mia applicazione avrei la necessità di trovare e eliminare tutti i
files che hanno una particolare estensione.
In pratica, se l'estensione è *.est devo eliminare tutti i file *.est
Grazie a chi mi risponderà
Andrea

...


Grazie per i suggerimenti, ma io devo eliminare tutti i files con una
determinata estensione che ci sono nell'hard disk (contrassegnato dalla
lettera C) .
Mi sapete dare qualche altro aiuto?
Andrea

Non per fare il pignolo ma, per un utilizzo migliore di questo NG sia per
chi domanda che per chi risponde, avresti fatto cosa gradita scrivendo
l'oggetto della domanda in questo modo:
[?] Problema incontrato
es: [?] Come salvare un' immagine
Questo messaggio non è rivolto a te in particolare, ma ho deciso di
inserirlo nelle risposte a domande con oggetti sbagliati.

Avrei questo codice che fa al caso tuo... Ho modificato al volo una mia
vecchia routine che effettuava un CercaFile a partire dalla directory
selezionata, quindi credo che sarebbe meglio ottimmizzarla un po'...
Cmq, mettiamo tu voglia cancellare, come dicevi nella domanda, tutti i file
che hanno estensione .C nella directory Temp e in tutte le sue directorys:
Call EliminaFiles("c:\Temp","*.c")
Altro esempio: tutti i files Bmp in tutto il drive C
Call EliminaFiles("c:","*.bmp")
Infine: Tutti i files Prova con qualsiasi estenzione nel drive C
Call EliminaFiles("c:","Prova*")
Spero che sia quello che chiedevi.
---------------------------------
Public Sub EliminaFiles(ByVal Directory As String, ByVal Filtro As String)
Dim pstrDirectory() As String, pstrAgg As String
Dim pstrPercorso As String, pstrNome As String
Dim plngNumDir As Long, plngCont As Long
'Sistema le eventuali imperfezione nei percorsi
If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
'Inizializza le variabili
pstrPercorso = Directory
'Corpo della routine
Scannerizza:
If Right(pstrPercorso, 1) <> "\" Then pstrPercorso = pstrPercorso & "\"
pstrNome = Dir(pstrPercorso, vbDirectory)
Do While pstrNome <> ""
     If pstrNome <> "." And pstrNome <> ".." Then
        If (GetAttr(pstrPercorso & pstrNome) And vbDirectory) = vbDirectory
Then
         plngNumDir = plngNumDir + 1
         ReDim Preserve pstrDirectory(plngNumDir)
         pstrDirectory(plngNumDir) = pstrAgg & pstrNome
        Else
            If pstrNome Like Filtro Then
                'Cancella i file
                'La linea giusta sarebbe la seguente
                '
                'Kill Directory & pstrAgg & pstrNome
                '
                'ma te la lascio remmizzatta....
                'fidarsi è bene non fidarsi è meglio
                MsgBox "kill " & Directory & pstrAgg & pstrNome
            End If
        End If
   End If
   pstrNome = Dir
Loop
'Esamina le sotto-directory
If plngCont < plngNumDir Then
    plngCont = plngCont + 1
    pstrPercorso = Directory & pstrDirectory(plngCont)
    pstrAgg = pstrDirectory(plngCont) & "\"
    GoTo Scannerizza
End If
End Sub
Ciao
Daniele
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Le risposte alle tue domande le puoi trovare su:
 
http://www.murialdo.it/it_lang_vb
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -