Utilizzare LINQ per ottenere una lista di file da una directory

di Andrea Zani, in LINQ,

Grazie alla capacità di LINQ di eseguire query su oggetti, si possono effettuare operazioni su collection in modo molto più veloce e semplice che in passato.

Senza LINQ, per ottenere la lista dei file da una directory filtrata per particoli attributi del file (dimensione file o attributi particolari), siamo obbligati a richiedere la lista completa dei file quindi, da questa, crearne una nuova aggiungendo uno a uno i file che rispettano le nostre esigenze.

Con LINQ il nostro codice diventa molto più semplice ed intuibile come si può vedere da questo snippet:

// Richiesta dei file con dimensione maggiore di 1KB e non Hidden
var dir = new System.IO.DirectoryInfo("c:\");
var files = from f in dir.GetFiles()
    where f.Length > 1024 && f.Attributes != FileAttributes.Hidden
    select f;
    // Oppure nuovo oggetto con solo le informazioni desiderate
    // select new { f.DirectoryName, f.Name, f.Length };

// Visualizzazione
foreach (var file in files)
{
    Console.WriteLine("{0} - {1} ({2})",
         file.DirectoryName,
         file.Name,
         file.Length);
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi