Per un programmino che sto facendo in C#, ho la necessità di indentificare tutti i files con una certa estensione in una determinata directory (file doc e docx per la precisione).

Per ottenere questa lista, abbiamo diverse possiblità, sempre usando DirectoryInfo e FileInfo.

Una prima possibilità è usare il metodo GetFiles, che restituisce un array di FileInfo.

Però non mi piace un granchè, perchè lo trovo poco flessibile nel caso di più estensioni (soprattutto quando non simili come nel mio caso).

Oggi vediamo come creare una lista di file inclusi in una data directory.

Vedremo due modi per farlo, usando oggetti differenti.

In un primo esempio useremo Directory e il suo metodo statico GetFiles:

        public string[] listLocalFiles()
        {
            string[] files = Directory.GetFiles(@"C:\my_dir");
            return files;
        }

Il metodo ritorna una array di string e vuole come minimo un parametro, che è la directory; gli si può passare anche un secondo parametro specificando l'estensione dei file da ricercare, e un terzo se si vogliono includere anche le sub directory.

Ad esempio:

        public string[] listLocalFiles()
        {
            string[] files = Directory.GetFiles(@"C:\my_dir", "*.txt", SearchOption.AllDirectories);
            return files;
        }

Directory ha però dei limiti, superati se usiamo DirectoryInfo (e poi GetFiles).