LINQ a soubor adresáře
Mnoho operací systému souborů jsou v podstatě dotazy a jsou proto vhodné, aby LINQ přístup.
[!POZNÁMKA]
Pokud chcete provádět programové dotazy obsah více typů souborů a dokumentů, zvažte použití Windows Desktop vyhledávací stroj.Ačkoli nelze nyní zjistit s LINQ, poskytuje výkonné služby indexování efektivně spravuje složitosti systému souborů.
Všimněte si, že dotazy v této části jsou nedestruktivní.Používají se nesmí změnit obsah původní soubory nebo složky.Toto vyplývá pravidlo dotazů nesmí způsobit žádné vedlejší účinky.Obecně jakýkoli kód (včetně dotazů, které provádějí vytvořit / aktualizovat / odstranit subjektů), který upravuje zdrojových dat by uchovávány odděleně od kódu pouze zadávání dotazů data.
Tato část obsahuje následující témata:
Jak: soubory s zadaný atribut nebo název dotazu
Ukazuje, jak hledat soubory porovnáním vlastností jednoho nebo více jeho FileInfo objektu.Jak: seskupit soubory podle přípony (LINQ)
Ukazuje, jak vrátit skupiny FileInfo objektu na základě přípony názvu souboru.Jak: dotaz pro celkový počet bajtů v sadě složek (LINQ)
Ukazuje, jak vrátit celkový počet bajtů ve všech souborech v zadaném adresáři stromu.Jak: porovnat obsah dvou složek (LINQ)s
Ukazuje, jak vrátit všechny soubory, které jsou k dispozici ve dvou určené složky a také všechny soubory, které jsou obsaženy v jedné složce, ale ne na druhou.Jak: dotaz na největší soubor nebo soubory v adresáři stromu (LINQ)
Ukazuje, jak vrátit soubor největší nebo nejmenší nebo zadaný počet souborů, v adresářovém stromu.Jak: dotaz na duplicitní soubory v adresářovém stromu (LINQ)
Ukazuje, jak seskupit všechny názvy souborů, které se vyskytují v více umístění v zadaném adresáři stromu.Také ukazuje, jak provádět složitější porovnání založené na vlastních porovnávací nástroj.Jak: dotaz na obsah souborů ve složce (LINQ)
Ukazuje, jak iterovat ve stromové struktuře složek, každý soubor otevřete a jeho obsah dotazu.
Komentáře
Vytvoření zdroje dat, který přesně představuje obsah souboru systému a řádně zpracovává výjimky je některé složitosti.Příklady v této části vytvořit kolekci snímek FileInfo objekty, které představuje všechny soubory v zadané kořenové složky a všech podsložek.Skutečný stav každého FileInfo v době mezi při zahájení a ukončení, spuštění dotazu se může změnit.Můžete například vytvořit seznam FileInfo objekty, které chcete použít jako zdroj dat.Při pokusu o přístup Length vlastnost v dotazu, FileInfo se pokusí o přístup k systému souborů k aktualizaci hodnoty objektu Length.Pokud soubor již existuje, můžete získat FileNotFoundException v dotazu, přestože není dotazu systému souborů přímo.Některé dotazy v této části použijte samostatný metodu, která spotřebovává tyto zvláštní výjimky v určitých případech.Další možností je zachovat dynamicky aktualizován pomocí zdroje dat FileSystemWatcher.