Multi File Read Tool (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 desta ferramenta depende dos arquivos fornecidos:
- Para arquivos de texto, esta 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 retorna como dados codificados em base64, desde que sejam explicitamente solicitados por nome ou extensão.
read_many_files pode ser usado para realizar tarefas como obter uma visão geral de uma base de código, encontrar onde uma funcionalidade específica está implementada, revisar documentação ou reunir contexto de vários arquivos de configuração.
Nota: 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 requer um padrão como "/docs/*" ou "/docs/*.md" para identificar os arquivos relevantes.
Argumentos
read_many_files aceita os seguintes argumentos:
paths(list[string], obrigatório): Um array de padrões glob ou caminhos relativos ao diretório alvo da ferramenta (ex.:["src/**/*.ts"],["README.md", "docs/*", "assets/logo.png"]).exclude(list[string], opcional): Padrões glob para arquivos/diretórios que devem ser excluídos (ex.:["**/*.log", "temp/"]). Esses padrões são adicionados às exclusões padrão seuseDefaultExcludesfor verdadeiro.include(list[string], opcional): Padrões glob adicionais para inclusão. Eles são mesclados compaths(ex.:["*.test.ts"]para incluir especificamente arquivos de teste que foram excluídos anteriormente, ou["images/*.jpg"]para incluir tipos específicos de imagem).recursive(boolean, opcional): Define se a busca deve ser recursiva. Esse comportamento é controlado principalmente pelo uso de**nos padrões glob. O valor padrão étrue.useDefaultExcludes(boolean, opcional): Define se uma lista de padrões de exclusão padrão deve ser aplicada (ex.:node_modules,.git, arquivos binários que não sejam imagem/pdf). O valor padrão étrue.respect_git_ignore(boolean, opcional): Define se os padrões do .gitignore devem ser respeitados ao localizar arquivos. O valor padrão étrue.
Como usar read_many_files com Qwen Code
read_many_files busca arquivos que correspondam aos padrões paths e include fornecidos, respeitando os padrões exclude e as exclusões padrão (se habilitadas).
- Para arquivos de texto: ele lê o conteúdo de cada arquivo correspondente (tentando pular arquivos binários que não foram explicitamente solicitados como imagem/PDF) e os concatena 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 um
--- End of content ---após o último arquivo. - Para arquivos de imagem e PDF: se solicitados explicitamente por 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 pular outros arquivos binários (aqueles que não correspondem a tipos comuns de imagem/PDF ou que não foram explicitamente solicitados) verificando a presença de bytes nulos no início do 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 específica de logo, 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 em uma pasta images:
read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)Notas 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 arquivos de 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.mp4ou um padrão como*.mov). - Outros arquivos binários: A ferramenta tenta detectar e pular outros tipos de arquivos binários examinando seu conteúdo inicial em busca de bytes nulos. A ferramenta exclui esses arquivos de sua saída.
- Arquivos de imagem/PDF/áudio/vídeo: A ferramenta pode ler tipos comuns de imagens (PNG, JPEG, etc.), PDF, áudio (mp3, wav) e arquivos de vídeo (mp4, mov), retornando-os como dados codificados em base64. Esses arquivos devem ser explicitamente direcionados pelos padrões
- Performance: Ler um número muito grande de arquivos ou arquivos individuais muito grandes pode ser intensivo em recursos.
- Especificidade de caminhos: Certifique-se de que os caminhos e padrões glob estão corretamente especificados em relação ao diretório de destino da ferramenta. Para arquivos de imagem/PDF, certifique-se de 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=Falsese precisar substituí-los, mas faça isso com cautela.