|
|
|
![]() |
|
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 18:25. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:10.