Condividi tramite


Directory di file e LINQ (Visual Basic)

Molte operazioni del file system sono essenzialmente query e sono quindi particolarmente adatte all'approccio LINQ.

Si noti che le query in questa sezione non sono distruttive. Non vengono utilizzati per modificare il contenuto dei file o delle cartelle originali. Questo segue la regola che le query non devono causare alcun effetto collaterale. In generale, qualsiasi codice (incluse le query che eseguono operatori create/update/delete) che modifica i dati di origine deve essere mantenuto separato dal codice che esegue solo query sui dati.

Questa sezione contiene gli argomenti seguenti:

Procedura: Eseguire una query per i file con un attributo o un nome specificato (Visual Basic)
Illustra come cercare i file esaminando una o più proprietà del relativo FileInfo oggetto.

Procedura: Raggruppare file per estensione (LINQ) (Visual Basic)
Illustra come restituire gruppi di FileInfo oggetti in base all'estensione del nome file.

Procedura: Eseguire una query per il numero totale di byte in un set di cartelle (LINQ) (Visual Basic)
Mostra come restituire il numero totale di byte in tutti i file in un albero di directory specificato.

Procedura: Confrontare il contenuto di due cartelle (LINQ) (Visual Basic)s
Mostra come restituire tutti i file presenti in due cartelle specificate e anche tutti i file presenti in una cartella, ma non l'altro.

Procedura: Eseguire una query per il file o i file più grandi in un albero di directory (LINQ) (Visual Basic)
Viene illustrato come restituire il file più grande o più piccolo o un numero specificato di file in un albero di directory.

Procedura: Eseguire una query per i file duplicati in un albero di directory (LINQ) (Visual Basic)
Illustra come raggruppare tutti i nomi di file che si verificano in più posizioni in un albero di directory specificato. Illustra anche come eseguire confronti più complessi in base a un operatore di confronto personalizzato.

Come eseguire query sul contenuto dei file in una cartella (LINQ) (Visual Basic)
Illustra come scorrere le cartelle in un albero, aprire ogni file ed eseguire query sul contenuto del file.

Commenti

La creazione di un'origine dati comporta una certa complessità nel rappresentare accuratamente il contenuto del file system e nel gestire efficacemente le eccezioni. Negli esempi di questa sezione viene creata una raccolta snapshot di FileInfo oggetti che rappresenta tutti i file in una cartella radice specificata e in tutte le relative sottocartelle. Lo stato effettivo di ogni FileInfo oggetto può cambiare nel tempo compreso tra l'inizio e la fine dell'esecuzione di una query. Ad esempio, è possibile creare un elenco di FileInfo oggetti da usare come origine dati. Se si tenta di accedere alla Length proprietà in una query, l'oggetto FileInfo tenterà di accedere al file system per aggiornare il valore di Length. Se il file non esiste più, si otterrà un oggetto FileNotFoundException nella query, anche se non si esegue direttamente una query sul file system. Alcune query in questa sezione usano un metodo separato che utilizza queste eccezioni specifiche in determinati casi. Un'altra opzione consiste nel mantenere l'origine dati aggiornata dinamicamente usando .FileSystemWatcher

Vedere anche