Ferramenta de Leitura de Múltiplos Arquivos (read_many_files)
Este documento descreve a ferramenta read_many_files para o Qwen Code.
Descrição
Use read_many_files para ler o conteúdo de vários arquivos especificados por caminhos ou padrões glob. O comportamento dessa ferramenta depende dos arquivos fornecidos:
- Para arquivos de texto, essa ferramenta concatena seu conteúdo em uma única string.
- Para arquivos de imagem (por exemplo, PNG, JPEG), PDF, áudio (MP3, WAV) e vídeo (MP4, MOV), ela os lê e os retorna como dados codificados em base64, desde que sejam explicitamente solicitados pelo nome ou pela extensão.
read_many_files pode ser usado para executar tarefas como obter uma visão geral de uma base de código, identificar onde determinada funcionalidade é implementada, revisar documentação ou reunir contexto de vários arquivos de configuração.
Observação: read_many_files procura arquivos seguindo os caminhos ou padrões glob fornecidos. Um caminho de diretório como "/docs" retornará um resultado vazio; a ferramenta exige um padrão como "/docs/*" ou "/docs/*.md" para identificar os arquivos relevantes.
Argumentos
read_many_files aceita os seguintes argumentos:
paths(lista[string], obrigatório): Um array de padrões glob ou caminhos relativos ao diretório-alvo da ferramenta (por exemplo,["src/**/*.ts"],["README.md", "docs/*", "assets/logo.png"]).exclude(lista[string], opcional): Padrões glob para arquivos/diretórios a serem excluídos (por exemplo,["**/*.log", "temp/"]). Esses padrões são adicionados às exclusões padrão seuseDefaultExcludesfor verdadeiro.include(lista[string], opcional): Padrões glob adicionais para inclusão. Esses padrões são mesclados compaths(por exemplo,["*.test.ts"]para adicionar especificamente arquivos de teste caso tenham sido amplamente excluídos, ou["images/*.jpg"]para incluir tipos específicos de imagens).recursive(booleano, opcional): Se deve pesquisar recursivamente. Isso é controlado principalmente pelo uso de**nos padrões glob. O valor padrão étrue.useDefaultExcludes(booleano, opcional): Se deve aplicar uma lista de padrões de exclusão padrão (por exemplo,node_modules,.git, arquivos binários não relacionados a imagens/PDF). O valor padrão étrue.respect_git_ignore(booleano, opcional): Se deve respeitar os padrões do arquivo.gitignoreao localizar arquivos. O valor padrão étrue.
Como usar read_many_files com o Qwen Code
O read_many_files pesquisa arquivos que correspondam aos padrões fornecidos em paths e include, respeitando ao mesmo tempo os padrões em exclude e as exclusões padrão (se ativadas).
- Para arquivos de texto: lê o conteúdo de cada arquivo correspondente (tentando ignorar arquivos binários não solicitados explicitamente como imagens/PDF) e concatena-o em uma única string, com um separador
--- {filePath} ---entre o conteúdo de cada arquivo. Usa codificação UTF-8 por padrão. - A ferramenta insere
--- Fim do conteúdo ---após o último arquivo. - Para arquivos de imagem e PDF: se solicitados explicitamente pelo nome ou extensão (por exemplo,
paths: ["logo.png"]ouinclude: ["*.pdf"]), a ferramenta lê o arquivo e retorna seu conteúdo como uma string codificada em base64. - A ferramenta tenta detectar e ignorar outros arquivos binários (aqueles que não correspondem aos tipos comuns de imagem/PDF ou não foram solicitados explicitamente) verificando a presença de bytes nulos no início de seu conteúdo.
Uso:
read_many_files(paths=["Seus arquivos ou caminhos aqui."], include=["Arquivos adicionais para incluir."], exclude=["Arquivos para excluir."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)Exemplos de read_many_files
Ler todos os arquivos TypeScript no diretório src:
read_many_files(paths=["src/**/*.ts"])Ler o README principal, todos os arquivos Markdown no diretório docs e uma imagem de logotipo específica, excluindo um arquivo específico:
read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])Ler todos os arquivos JavaScript, mas incluir explicitamente os arquivos de teste e todas as imagens JPEG na pasta images:
read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)Observações importantes
- Manipulação de arquivos binários:
- Arquivos de imagem/PDF/áudio/vídeo: A ferramenta pode ler tipos comuns de imagens (PNG, JPEG etc.), PDF, áudio (mp3, wav) e vídeo (mp4, mov), retornando-os como dados codificados em base64. Esses arquivos devem ser explicitamente direcionados pelos padrões
pathsouinclude(por exemplo, especificando o nome exato do arquivo, comovideo.mp4, ou um padrão como*.mov). - Outros arquivos binários: A ferramenta tenta detectar e ignorar outros tipos de arquivos binários examinando seu conteúdo inicial em busca de bytes nulos. Esses arquivos são excluídos da saída da ferramenta.
- Arquivos de imagem/PDF/áudio/vídeo: A ferramenta pode ler tipos comuns de imagens (PNG, JPEG etc.), PDF, áudio (mp3, wav) e vídeo (mp4, mov), retornando-os como dados codificados em base64. Esses arquivos devem ser explicitamente direcionados pelos padrões
- Desempenho: Ler um número muito grande de arquivos ou arquivos individuais muito grandes pode consumir muitos recursos.
- Especificidade de caminhos: Certifique-se de que os caminhos e padrões glob sejam especificados corretamente em relação ao diretório-alvo da ferramenta. Para arquivos de imagem/PDF, garanta que os padrões sejam específicos o suficiente para incluí-los.
- Exclusões padrão: Esteja ciente dos padrões de exclusão padrão (como
node_modules,.git) e useuseDefaultExcludes=Falsecaso precise substituí-los, mas faça isso com cautela.