AlmaMater
Power Member
Hello,
Com o objectivo de obter todo o conteúdo de uma directoria tenho 2 SUBs recursivos o WorkWithDirectory e o WorkWithFilesInDir:
Acontece que qdo adiciono uma pasta com milhares de ficheiros o programa fica bloqueado até concluir o For Each.. estava a tentar adicionar um BackgroundWorker para fazer isto à parte mas dá-em sempre erro devido à variável "aDir"...
tentei substituir a parte do "WorkWithFilesInDir" por um BackgroundWorker:
ficou tudo assim:
mas dá o erro de "Error 1 - Name 'aDir' is not declared"
Alguma ideia?
Thanks
Com o objectivo de obter todo o conteúdo de uma directoria tenho 2 SUBs recursivos o WorkWithDirectory e o WorkWithFilesInDir:
Código:
Private Sub ListaFicheiros()
Dim nameOfDirectory As String
CLB.Items.Clear() ' CheckListBox
nameOfDirectory = Label1.Text
Dim myDirectory As DirectoryInfo
myDirectory = New DirectoryInfo(nameOfDirectory)
[COLOR="Blue"]WorkWithDirectory(myDirectory)[/COLOR]
End Sub
Private Sub WorkWithDirectory(ByVal aDir As DirectoryInfo)
Dim nextDir As DirectoryInfo
[COLOR="blue"]WorkWithFilesInDir[/COLOR](aDir)
For Each nextDir In aDir.GetDirectories
WorkWithDirectory(nextDir)
Next
End Sub
Private Sub WorkWithFilesInDir(ByVal aDir As DirectoryInfo)
Dim aFile As FileInfo
For Each aFile In aDir.GetFiles()
If CLB.Items.Contains(aFile.Name) = True Then
Else
CLB.Items.Add(aFile.Name)
End If
Next
End Sub
Acontece que qdo adiciono uma pasta com milhares de ficheiros o programa fica bloqueado até concluir o For Each.. estava a tentar adicionar um BackgroundWorker para fazer isto à parte mas dá-em sempre erro devido à variável "aDir"...
tentei substituir a parte do "WorkWithFilesInDir" por um BackgroundWorker:
ficou tudo assim:
Código:
Private Sub backgroundWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles backgroundWorker.DoWork
Dim aFile As FileInfo
For Each aFile In aDir.GetFiles()
If CLB.Items.Contains(aFile.Name) = True Then
Else
CLB.Items.Add(aFile.Name)
End If
Next
End Sub
mas dá o erro de "Error 1 - Name 'aDir' is not declared"
Alguma ideia?
Thanks