Delen via


LINQ en Bestandsmappen (Visual Basic)

Veel bestandssysteembewerkingen zijn in wezen query's en zijn daarom goed geschikt voor de LINQ-benadering.

Houd er rekening mee dat de query's in deze sectie niet-destructief zijn. Ze worden niet gebruikt om de inhoud van de oorspronkelijke bestanden of mappen te wijzigen. Dit volgt de regel die query's geen bijwerkingen mogen veroorzaken. Over het algemeen moet elke code (inclusief query's die operatoren voor maken/bijwerken/verwijderen uitvoeren) die brongegevens wijzigt, gescheiden blijven van de code die alleen query's op de gegevens uitvoert.

Deze sectie bevat de volgende onderwerpen:

Procedure: Query's uitvoeren op bestanden met een opgegeven kenmerk of naam (Visual Basic)
Laat zien hoe u bestanden kunt zoeken door een of meer eigenschappen van het FileInfo object ervan te onderzoeken.

Procedure: Bestanden groeperen op extensie (LINQ) (Visual Basic)
Laat zien hoe u groepen objecten retourneert op basis van FileInfo hun bestandsnaamextensie.

Procedure: Een query uitvoeren voor het totale aantal bytes in een set mappen (LINQ) (Visual Basic)
Laat zien hoe u het totale aantal bytes in alle bestanden in een opgegeven mapstructuur kunt retourneren.

Procedure: De inhoud van twee mappen (LINQ) (Visual Basic)s vergelijken
Laat zien hoe u alle bestanden kunt retourneren die aanwezig zijn in twee opgegeven mappen, en ook alle bestanden die aanwezig zijn in de ene map, maar niet in de andere.

Procedure: Query uitvoeren voor het grootste bestand of de grootste bestanden in een mapstructuur (LINQ) (Visual Basic)
Laat zien hoe u het grootste of kleinste bestand, of een opgegeven aantal bestanden, in een mapstructuur kunt retourneren.

Procedure: Query's uitvoeren op dubbele bestanden in een mapstructuur (LINQ) (Visual Basic)
Laat zien hoe u groepeer voor alle bestandsnamen die zich op meer dan één locatie in een opgegeven mapstructuur bevinden. Laat ook zien hoe u complexere vergelijkingen uitvoert op basis van een aangepaste vergelijking.

Query's uitvoeren op de inhoud van bestanden in een map (LINQ) (Visual Basic)
Hier ziet u hoe u mappen in een boomstructuur doorloopt, elk bestand opent en de inhoud van het bestand opvraagt.

Opmerkingen

Er is enige complexiteit betrokken bij het maken van een gegevensbron die de inhoud van het bestandssysteem nauwkeurig vertegenwoordigt en uitzonderingen correct afhandelt. In de voorbeelden in deze sectie wordt een verzameling momentopnamen gemaakt van FileInfo objecten die alle bestanden onder een opgegeven hoofdmap en alle bijbehorende submappen vertegenwoordigen. De werkelijke status van elk FileInfo item kan veranderen in de tijd tussen het begin en einde van het uitvoeren van een query. U kunt bijvoorbeeld een lijst maken met FileInfo objecten die u als gegevensbron wilt gebruiken. Als u de Length eigenschap in een query probeert te openen, probeert het FileInfo object toegang te krijgen tot het bestandssysteem om de waarde van Length. Als het bestand niet meer bestaat, krijgt u een FileNotFoundException in uw query, ook al voert u geen query's uit op het bestandssysteem. Sommige query's in deze sectie gebruiken een afzonderlijke methode die deze specifieke uitzonderingen in bepaalde gevallen verbruikt. Een andere optie is om uw gegevensbron dynamisch bijgewerkt te houden met behulp van de FileSystemWatcher.

Zie ook