Grazie ragazzi...... Ecco il codice ottimizzato per quanto ho potuto inquando non sono un esperto di .net...
Spero che questo mio lavoro possa servire a qualk1 per velocizzare i tempi nella creazione di un codice di ricerca per file...codice:Public Sub ProcessDir(ByVal Dir As String) Dim splitta() As String Dim i As Integer Dim testodacercare As String Dim estensionefile As String = "" Dim coso As Integer = -1 Dim verifica As Integer = 0 Dim nomefilesplittato As String = "" Dim estensione As Object Dim stringa As String ' Aumenta ad ogni ciclo di funzione la ProgressBar ProgressBar1.Value = ProgressBar1.Value + 10 'Azzera la ProgressBar If ProgressBar1.Value = 10000 Then ProgressBar1.Value = 0 ' Processa la lista dei files trovati nella directory passata Try 'Controllo di errori Dim fileEntries As String() = Directory.GetFiles(Dir) 'Converte tutto il testo da cercare in minuscolo + toglie gli spazi iniziali o finali testodacercare = Trim(LCase(textcerca.Text)) For Each fileName As String In fileEntries 'Converte tutto il nome del file in minuscolo + toglie gli spazi iniziali o finali stringa = Trim(LCase(fileName)) 'Splitta il percorso completo lasciando solo il nome del file splitta = Split(stringa, "\") 'Inizio ciclo per splittare For i = 0 To UBound(splitta) splitta(i) = splitta(i) Next 'Prendi l'ultimo indice dell'array splitta e passa il valore nella variabile nomefilesplittato = splitta(UBound(splitta)) 'Splitta il nome del file togliendo i punti per risalire all'estensione estensione = Split(nomefilesplittato, ".") 'Inizio ciclo per splittare For i = 0 To UBound(estensione) estensione(i) = estensione(i) Next 'Prendi l'ultimo indice dell'array estensionefile e passa il valore nella variabile estensionefile = estensione(UBound(estensione)) 'trovata l'estensione aggiungiamo il punto per il riconoscimento dell'estensione del file estensionefile = "." & estensionefile ' contralla l'estensione del file e applica un icona Select Case UCase(estensionefile) Case ".AVI" coso = 1 Case ".MKV" coso = 2 Case ".MPG" coso = 4 Case ".TS" coso = 5 Case ".DIVX" coso = 6 Case ".MPEG" coso = 4 Case ".WMV" coso = 7 Case ".VOB" coso = 8 Case ".MP4" coso = 9 Case ".MOV" coso = 9 Case ".Mp4" coso = 9 Case ".MPA" coso = 9 Case ".MP2" coso = 9 Case ".MOV" coso = 9 Case ".MKA" coso = 2 Case ".MOV" coso = 9 Case ".IFO" coso = 6 Case Else coso = 0 End Select ' Controlla se è stato trovato almeno un file e se l'icona non è uguale a 0 e lo aggiunge alla listView If ((nomefilesplittato.IndexOf(testodacercare) <> -1) And Not (coso = 0)) Then ListView2.Enabled = True ListView2.Items.Add(New ListViewItem(fileName.ToString, coso)) ' Aggiorna ListView ListView2.Refresh() ProgressBar1.Value = 0 End If Next ' Processa tutte le directory trovate nella directory passata alla funzione Dim subdirectoryEntries As String() = Directory.GetDirectories(Dir) For Each subdirectory As String In subdirectoryEntries ProcessDir(subdirectory) Next ' Se trova un errore saltalo e continua il processo e azzera la ProgressBar Catch ex As Exception ProgressBar1.Value = 0 End Try End Sub
E se qualk1 ha un suggerimento per migliorare tale codice lo posti pure...
Ciao a tutti...

Rispondi quotando