LINQ a souborové 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:
Postupy: Vytvoření dotazu na soubory s konkrétním atributem či názvem
Ukazuje, jak hledat soubory porovnáním vlastností jednoho nebo více jeho FileInfo objektu.Postupy: Seskupování souborů podle přípony (LINQ)
Ukazuje, jak vrátit skupiny FileInfo objektu na základě přípony názvu souboru.Postupy: Vytvoření dotazu na 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.Postupy: Porovnání obsahu 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.Postupy: Vytvoření dotazu na největší soubor či soubory v adresářovém stromu (LINQ)
Ukazuje, jak vrátit soubor největší nebo nejmenší nebo zadaný počet souborů, v adresářovém stromu.Postupy: Vytvoření dotazu 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.Postupy: Vytvoření dotazu 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.