Udostępnij za pośrednictwem


LINQ i katalogi plików (Visual Basic)

Wiele operacji systemu plików jest zasadniczo zapytań i dlatego dobrze nadaje się do podejścia LINQ.

Należy pamiętać, że zapytania w tej sekcji nie są destruktywne. Nie są one używane do zmiany zawartości oryginalnych plików lub folderów. Jest to zgodne z regułą, że zapytania nie powinny powodować żadnych skutków ubocznych. Ogólnie rzecz biorąc, każdy kod (w tym zapytania wykonujące operatory tworzenia/aktualizowania/usuwania), który modyfikuje dane źródłowe, powinien być oddzielony od kodu, który wykonuje tylko zapytania dotyczące danych.

Ta sekcja zawiera następujące tematy:

Porady: wykonywanie zapytań o pliki o określonym atrybucie lub nazwie (Visual Basic)
Pokazuje, jak wyszukiwać pliki, sprawdzając co najmniej jedną właściwości jej FileInfo obiektu.

Porady: grupowanie plików według rozszerzenia (LINQ) (Visual Basic)
Pokazuje, jak zwracać grupy FileInfo obiektów na podstawie rozszerzenia nazwy pliku.

Porady: wykonywanie zapytań o łączną liczbę bajtów w zestawie folderów (LINQ) (Visual Basic)
Pokazuje, jak zwrócić całkowitą liczbę bajtów we wszystkich plikach w określonym drzewie katalogów.

Porady: porównanie zawartości dwóch folderów (LINQ) (Visual Basic)s
Przedstawia sposób zwracania wszystkich plików znajdujących się w dwóch określonych folderach, a także wszystkich plików znajdujących się w jednym folderze, ale nie w drugim.

Porady: wykonywanie zapytań o największy plik lub pliki w drzewie katalogów (LINQ) (Visual Basic)
Pokazuje, jak zwrócić największy lub najmniejszy plik lub określoną liczbę plików w drzewie katalogów.

Porady: wykonywanie zapytań o zduplikowane pliki w drzewie katalogów (LINQ) (Visual Basic)
Przedstawia sposób grupowania wszystkich nazw plików występujących w więcej niż jednej lokalizacji w określonym drzewie katalogów. Pokazano również, jak wykonywać bardziej złożone porównania na podstawie niestandardowego porównania.

Jak wykonywać zapytania dotyczące zawartości plików w folderze (LINQ) (Visual Basic)
Pokazuje, jak iterować foldery w drzewie, otwierać każdy plik i wykonywać zapytania dotyczące zawartości pliku.

Komentarze

Istnieje pewna złożoność związana z tworzeniem źródła danych, które dokładnie reprezentuje zawartość systemu plików i bezpiecznie obsługuje wyjątki. Przykłady w tej sekcji tworzą kolekcję FileInfo migawek obiektów reprezentujących wszystkie pliki w określonym folderze głównym i wszystkich jego podfolderach. Rzeczywisty stan każdego z nich FileInfo może ulec zmianie w czasie między rozpoczęciem i zakończeniem wykonywania zapytania. Można na przykład utworzyć listę FileInfo obiektów do użycia jako źródło danych. Jeśli spróbujesz uzyskać dostęp do Length właściwości w zapytaniu, FileInfo obiekt spróbuje uzyskać dostęp do systemu plików w celu zaktualizowania wartości Length. Jeśli plik już nie istnieje, otrzymasz element FileNotFoundException w zapytaniu, mimo że nie wysyłasz zapytań bezpośrednio do systemu plików. Niektóre zapytania w tej sekcji używają oddzielnej metody, która używa tych określonych wyjątków w niektórych przypadkach. Inną opcją jest dynamiczne aktualizowanie źródła danych przy użyciu elementu FileSystemWatcher.

Zobacz też