Questo pezzetto di codice inserisce in un ArrayList tutti i nomi dei files contenuti in tutte le sottocartelle di ua cartella iniziale passata come parametro...

Sicuramente mi è sfuggito il metodo del framework che fa la stessa cosa 100 volte meglio, ma mi è servito per "ricordarmi" come fare una funzione ricorsiva...

Qualsiasi suggerimento per migliorarla è ben accetto, solo... andateci piano con gli insulti :)

private void Start(string directoryIniziale)
{
    ArrayList arrayList = 
new ArrayList();

    DirectoryInfo di = 
new DirectoryInfo(directoryIniziale);
    SearchFiles(di);

    arrayList.TrimToSize();
    Debug.WriteLine(arrayList.Count);
}

private void SearchFiles(DirectoryInfo dirinfo)
{
    FileSystemInfo[] dirs = dirinfo.GetDirectories();

    
foreach (DirectoryInfo diNext in dirs)
    {
        FileInfo[] fi = diNext.GetFiles();    
        
foreach(FileInfo f in fi)
        {
            arrayList.Add(f.FullName);
        }
        
foreach(DirectoryInfo nextdir in diNext.GetDirectories())
        {
            SearchFiles(nextdir);
        }
    }
}

powered by IMH0 1.1