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 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 (por exemplo,["src/**/*.ts"],["README.md", "docs/*", "assets/logo.png"]).exclude(list[string], opcional): Padrões glob para arquivos/diretórios a serem excluídos (por exemplo,["**/*.log", "temp/"]). Estes são adicionados às exclusões padrão seuseDefaultExcludesfor verdadeiro.include(list[string], opcional): Padrões glob adicionais a serem incluídos. Estes 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(boolean, opcional): Se deve buscar recursivamente. Isso é controlado principalmente pelo**nos padrões glob. O valor padrão étrue.useDefaultExcludes(boolean, opcional): Se deve aplicar uma lista de padrões de exclusão padrão (por exemplo,node_modules,.git, arquivos binários não imagem/pdf). O valor padrão étrue.respect_git_ignore(boolean, opcional): Se deve respeitar os padrões do .gitignore ao localizar arquivos. O valor padrão é verdadeiro.
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: lê o conteúdo de cada arquivo correspondente (tentando pular arquivos binários não solicitados explicitamente como imagem/PDF) e os concatena em uma única string, com um separador
--- {filePath} ---entre o conteúdo de cada arquivo. Usa a 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 não solicitados explicitamente) verificando a presença de bytes nulos em seu conteúdo inicial.
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
Leia todos os arquivos TypeScript no diretório src:
read_many_files(paths=["src/**/*.ts"])Leia o README principal, todos os arquivos Markdown no diretório docs e uma imagem específica do logo, excluindo um arquivo específico:
read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])Leia todos os arquivos JavaScript, mas inclua explicitamente os arquivos de teste e todos os arquivos 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 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 ignorar 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 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 ser intensivo em recursos.
- Especificidade de caminhos: Certifique-se de que os caminhos e padrões globais estejam 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.