Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-05-2011, 17:07   #1
birmarco
Senior Member
 
L'Avatar di birmarco
 
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 un piccolo problemino, vorrei creare una lista dei file contenuti in un percorso e le relative sottocartelle salvando in un array tutti i percorsi relativi.

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
Grazie a tutti!
birmarco è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 11:18   #2
birmarco
Senior Member
 
L'Avatar di birmarco
 
Iscritto dal: Mar 2008
Città: Milano; 9 Vendite concluse -> Wilde; emmepi; Homerj81; cos1950; mariotanza; Benia; grigor; alekia; ARG0
Messaggi: 11160
Nessuno?
birmarco è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 18:01   #3
birmarco
Senior Member
 
L'Avatar di birmarco
 
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
Dovrei utilizzare questo codice per la ricerca di diversi tipi di file. E' possibile attuare una strategia per non ripetere tutto per ogni tipo di file?
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.
birmarco è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
La PS6 si farà attendere: il lanc...
OnePlus non sente la crisi delle memorie...
I futuri iPhone 18 Pro potrebbero costar...
Bosch eBike Systems MY2027: a sorpresa a...
Amazon, le top 5 offerte del weekend per...
Sesto giorno di Prime Day anticipato Ama...
La scopa elettrica Roborock F25 Ultra sc...
Ho messo uno studio video con Intelligen...
Dreame Aqua10 Ultra Roller Complete punt...
Roborock Saros 20 Set sembra fuori categ...
Samsung Galaxy Z Fold 8: prezzi in salit...
NVIDIA mostra una comunità di rob...
Sony annuncia LYTIA L910, arriva il sens...
Ericsson, il 5G è l’infrastruttur...
Marvell punta tutto su TSMC A14: sar&agr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v