|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2008
Città: Milano; 9 Vendite concluse -> Wilde; emmepi; Homerj81; cos1950; mariotanza; Benia; grigor; alekia; ARG0
Messaggi: 11160
|
[VB .Net] Creare lista di file
Ciao a tutti!
Ho scritto questo codice ma ottengo degli errori. Inoltre mi sembra molto macchinoso qualora dovesse funzionare. Avete una soluzione migliore? Codice:
Function ReadFiles(ByVal path As String, ByRef Lista As ArrayList)
Dim TempFileList As System.Collections.Generic.IEnumerable(Of String) = IO.Directory.EnumerateFiles(path) 'File nel percorso
'Aggiungi file del percorso
For Each FileName As String In TempFileList
MsgBox(FileName)
Lista.Add(FileName)
Next
End Function
Function ReadFolders(ByVal path As String, ByRef Lista As ArrayList)
Dim TempFileList As System.Collections.Generic.IEnumerable(Of String) = IO.Directory.EnumerateDirectories(path) 'Dircetory nel percorso
'Aggiungi directory
For Each FolderName As String In TempFileList
MsgBox(FolderName)
Lista.Add(FolderName)
Next
End Function
Function FileList(ByVal path As String, Optional ByVal Filter As String = "") As ArrayList
Dim FList As ArrayList 'Lista dei file
Dim FolderList As ArrayList 'Lista cartelle da leggere
MsgBox(path)
ReadFiles(path, FList) 'Aggiungi file percorso principale
ReadFolders(path, FolderList) 'Aggiungi cartelle percorso principale
While (FolderList.Count > 0) 'Finchè ci sono cartelle
For Each Folder As String In FolderList
ReadFiles(Folder, FList) 'Aggiungi file della cartella
ReadFolders(Folder, FolderList) 'Aggiungi percorsi sottocartelle
FolderList.Remove(Folder) 'Elimina cartella dai percorsi da esamninare
Next
End While
Return FList
End Function
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2008
Città: Milano; 9 Vendite concluse -> Wilde; emmepi; Homerj81; cos1950; mariotanza; Benia; grigor; alekia; ARG0
Messaggi: 11160
|
Nessuno?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2008
Città: Milano; 9 Vendite concluse -> Wilde; emmepi; Homerj81; cos1950; mariotanza; Benia; grigor; alekia; ARG0
Messaggi: 11160
|
Sono riuscito a sviluppare questa soluzione, come la trovate?
L'ho testata e funziona. Codice:
'Crea una lista di file
Sub DisplayDirTree(ByVal dir As String, ByVal ShowFiles As Boolean, ByRef lista As ArrayList, ByVal Pattern As String)
Try
If ShowFiles Then
For Each fname As String In IO.Directory.GetFiles(dir, Pattern)
lista.Add(New String(fname))
Next
End If
For Each subdir As String In IO.Directory.GetDirectories(dir)
DisplayDirTree(subdir, ShowFiles, lista, Pattern)
Next
Catch ex As Exception
End Try
End Sub
Sub SearchInPath(ByVal Path As String, ByVal Output As String, Optional ByVal Pattern As String = "*")
Dim lista As New ArrayList
DisplayDirTree(Path, True, lista, Pattern)
Using FS As New IO.FileStream(Output, IO.FileMode.Create, IO.FileAccess.Write)
Using SW As New IO.StreamWriter(FS)
For Each percorso In lista
SW.WriteLine(percorso)
Next
End Using
End Using
End Sub
Sub SearchInAllDrive(ByVal Output As String, Optional ByVal Pattern As String = "*")
Dim lista As New ArrayList
For Each rootDir As String In IO.Directory.GetLogicalDrives()
DisplayDirTree(rootDir, True, lista, Pattern)
Next
Using FS As New IO.FileStream(Output, IO.FileMode.Create, IO.FileAccess.Write)
Using SW As New IO.StreamWriter(FS)
For Each percorso In lista
SW.WriteLine(percorso)
Next
End Using
End Using
End Sub
Mi piacerebbe anche mostrare all'utente una barra di prograsso, come faccio a sapere in anticipo quanti file saranno per aggiornare dopo l'aggiunta di ogni file? Ultima modifica di birmarco : 10-05-2011 alle 19:25. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:40.


















