LINQ e diretórios de arquivos (Visual Basic)
Muitas operações do sistema de arquivos são essencialmente consultas e, portanto, são adequadas à abordagem LINQ.
Observe que as consultas nesta seção não são destrutivas. Eles não são usados para alterar o conteúdo dos arquivos ou pastas originais. Isso segue a regra de que as consultas não devem causar efeitos colaterais. Em geral, qualquer código (incluindo consultas que executam operadores de criação/atualização/exclusão) que modifica os dados de origem deve ser mantido separado do código que apenas consulta os dados.
Esta seção contém os seguintes tópicos:
Como: Consultar arquivos com um atributo ou nome especificado (Visual Basic)
Mostra como procurar arquivos examinando uma ou mais propriedades de seu FileInfo objeto.
Como agrupar arquivos por extensão (LINQ) (Visual Basic)
Mostra como retornar grupos de objeto com base em sua extensão de nome de FileInfo arquivo.
Como consultar o número total de bytes em um conjunto de pastas (LINQ) (Visual Basic)
Mostra como retornar o número total de bytes em todos os arquivos em uma árvore de diretório especificada.
Como: Comparar o conteúdo de duas pastas (LINQ) (Visual Basic)
Mostra como retornar todos os arquivos que estão presentes em duas pastas especificadas e também todos os arquivos que estão presentes em uma pasta, mas não na outra.
Como consultar o maior arquivo ou arquivos em uma árvore de diretório (LINQ) (Visual Basic)
Mostra como retornar o maior ou menor arquivo, ou um número especificado de arquivos, em uma árvore de diretório.
Como consultar arquivos duplicados em uma árvore de diretório (LINQ) (Visual Basic)
Mostra como agrupar todos os nomes de arquivo que ocorrem em mais de um local em uma árvore de diretório especificada. Também mostra como realizar comparações mais complexas com base em um comparador personalizado.
Como consultar o conteúdo de arquivos em uma pasta (LINQ) (Visual Basic)
Mostra como iterar através de pastas em uma árvore, abrir cada arquivo e consultar o conteúdo do arquivo.
Comentários
Há alguma complexidade envolvida na criação de uma fonte de dados que representa com precisão o conteúdo do sistema de arquivos e lida com exceções normalmente. Os exemplos nesta seção criam uma coleção instantânea de FileInfo objetos que representa todos os arquivos em uma pasta raiz especificada e todas as suas subpastas. O estado real de cada FileInfo um pode mudar no tempo entre quando você começa e termina a execução de uma consulta. Por exemplo, você pode criar uma lista de objetos para usar como fonte de FileInfo dados. Se você tentar acessar a Length
propriedade em uma consulta, o FileInfo objeto tentará acessar o sistema de arquivos para atualizar o valor de Length
. Se o arquivo não existir mais, você receberá um FileNotFoundException em sua consulta, mesmo que você não esteja consultando o sistema de arquivos diretamente. Algumas consultas nesta seção usam um método separado que consome essas exceções específicas em certos casos. Outra opção é manter sua fonte de dados atualizada dinamicamente usando o FileSystemWatcher.