Skip to Content
Руководство разработчикаИнструментыЧтение нескольких файлов

Инструмент чтения нескольких файлов (read_many_files)

В этом документе описывается инструмент read_many_files для Qwen Code.

Описание

Используйте read_many_files для чтения содержимого из нескольких файлов, указанных по путям или шаблонам glob. Поведение этого инструмента зависит от предоставленных файлов:

  • Для текстовых файлов инструмент объединяет их содержимое в одну строку.
  • Для изображений (например, PNG, JPEG), PDF, аудио (MP3, WAV) и видеофайлов (MP4, MOV) он читает и возвращает их в виде данных, закодированных в base64, при условии, что они явно запрошены по имени или расширению.

read_many_files можно использовать для выполнения таких задач, как получение общего представления о кодовой базе, поиск мест реализации определенной функциональности, просмотр документации или сбор контекста из нескольких файлов конфигурации.

Примечание: read_many_files ищет файлы по указанным путям или шаблонам glob. Путь к каталогу, такой как "/docs", вернет пустой результат; инструмент требует шаблона, такого как "/docs/*" или "/docs/*.md", чтобы определить соответствующие файлы.

Аргументы

read_many_files принимает следующие аргументы:

  • paths (list[string], обязательный): Массив шаблонов glob или путей относительно целевой директории инструмента (например, ["src/**/*.ts"], ["README.md", "docs/*", "assets/logo.png"]).
  • exclude (list[string], необязательный): Шаблоны glob для файлов/директорий, которые нужно исключить (например, ["**/*.log", "temp/"]). Они добавляются к стандартным исключениям, если useDefaultExcludes равен true.
  • include (list[string], необязательный): Дополнительные шаблоны glob для включения. Они объединяются с paths (например, ["*.test.ts"], чтобы специально добавить тестовые файлы, если они были широко исключены, или ["images/*.jpg"], чтобы включить определенные типы изображений).
  • recursive (boolean, необязательный): Следует ли выполнять рекурсивный поиск. В основном управляется символом ** в шаблонах glob. По умолчанию true.
  • useDefaultExcludes (boolean, необязательный): Следует ли применять список стандартных шаблонов исключения (например, node_modules, .git, бинарные файлы, не являющиеся изображениями/pdf). По умолчанию true.
  • respect_git_ignore (boolean, необязательный): Следует ли учитывать шаблоны .gitignore при поиске файлов. По умолчанию true.

Как использовать read_many_files с Qwen Code

read_many_files ищет файлы, соответствующие указанным шаблонам paths и include, при этом учитывая шаблоны exclude и стандартные исключения (если включены).

  • Для текстовых файлов: инструмент читает содержимое каждого найденного файла (пытаясь пропустить бинарные файлы, если они не запрошены явно как изображения/PDF) и объединяет их в одну строку, разделяя содержимое каждого файла разделителем --- {filePath} ---. По умолчанию используется кодировка UTF-8.
  • Инструмент добавляет --- End of content --- после последнего файла.
  • Для изображений и PDF-файлов: если файлы были явно запрошены по имени или расширению (например, paths: ["logo.png"] или include: ["*.pdf"]), инструмент читает файл и возвращает его содержимое в виде строки в кодировке base64.
  • Инструмент пытается определить и пропустить другие бинарные файлы (которые не относятся к распространенным типам изображений/PDF или не были запрошены явно), проверяя наличие нулевых байтов в начале содержимого файла.

Использование:

read_many_files(paths=["Ваши файлы или пути здесь."], include=["Дополнительные файлы для включения."], exclude=["Файлы для исключения."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)

Примеры использования read_many_files

Чтение всех файлов TypeScript в директории src:

read_many_files(paths=["src/**/*.ts"])

Чтение основного файла README, всех файлов Markdown в директории docs и определенного изображения логотипа, исключая конкретный файл:

read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])

Чтение всех файлов JavaScript, но с явным включением тестовых файлов и всех изображений формата JPEG в папке images:

read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)

Важные замечания

  • Работа с бинарными файлами:
    • Файлы изображений/PDF/аудио/видео: Инструмент может читать распространенные типы изображений (PNG, JPEG и т. д.), PDF-, аудио- (mp3, wav) и видеофайлы (mp4, mov), возвращая их как данные в кодировке base64. Эти файлы должны быть явно указаны в шаблонах paths или include (например, путем указания точного имени файла, например video.mp4, или шаблона, например *.mov).
    • Другие бинарные файлы: Инструмент пытается обнаружить и пропустить другие типы бинарных файлов, проверяя наличие нулевых байтов в их начальном содержимом. Такие файлы исключаются из вывода инструмента.
  • Производительность: Чтение очень большого количества файлов или очень больших отдельных файлов может потреблять много ресурсов.
  • Точность путей: Убедитесь, что пути и глоб-паттерны правильно заданы относительно целевой директории инструмента. Для файлов изображений/PDF убедитесь, что шаблоны достаточно точны, чтобы включить их.
  • Исключения по умолчанию: Имейте в виду стандартные шаблоны исключения (такие как node_modules, .git) и используйте useDefaultExcludes=False, если вам нужно их переопределить, но делайте это осторожно.
Last updated on