5.6 KiB
Multi File Read Tool (read_many_files)
Dieses Dokument beschreibt das read_many_files Tool für Qwen Code.
Beschreibung
Verwende read_many_files, um Inhalte aus mehreren Dateien zu lesen, die durch Pfade oder Glob-Muster angegeben werden. Das Verhalten dieses Tools hängt von den bereitgestellten Dateien ab:
- Für Textdateien verknüpft dieses Tool deren Inhalt zu einem einzigen String.
- Für Bilddateien (z. B. PNG, JPEG), PDF-, Audio- (MP3, WAV) und Videodateien (MP4, MOV) liest es diese als base64-kodierte Daten, sofern sie explizit nach Name oder Erweiterung angefordert werden.
read_many_files kann für Aufgaben wie das Überblicken einer Codebasis, das Finden von Implementierungen bestimmter Funktionen, das Überprüfen von Dokumentationen oder das Sammeln von Kontext aus mehreren Konfigurationsdateien verwendet werden.
Hinweis: read_many_files sucht nach Dateien anhand der angegebenen Pfade oder Glob-Muster. Ein Verzeichnispfad wie "/docs" liefert ein leeres Ergebnis; das Tool benötigt ein Muster wie "/docs/*" oder "/docs/*.md", um die relevanten Dateien zu identifizieren.
Argumente
read_many_files akzeptiert die folgenden Argumente:
paths(list[string], required): Ein Array von Glob-Patterns oder Pfaden relativ zum Zielverzeichnis des Tools (z. B.["src/**/*.ts"],["README.md", "docs/*", "assets/logo.png"]).exclude(list[string], optional): Glob-Patterns für Dateien/Verzeichnisse, die ausgeschlossen werden sollen (z. B.["**/*.log", "temp/"]). Diese werden zu den Standard-Excludes hinzugefügt, wennuseDefaultExcludesauftruegesetzt ist.include(list[string], optional): Zusätzliche Glob-Patterns, die explizit eingeschlossen werden sollen. Diese werden mitpathszusammengeführt (z. B.["*.test.ts"], um Testdateien gezielt hinzuzufügen, falls sie allgemein ausgeschlossen wurden, oder["images/*.jpg"], um bestimmte Bildtypen einzuschließen).recursive(boolean, optional): Gibt an, ob rekursiv gesucht werden soll. Dies wird hauptsächlich durch**in den Glob-Patterns gesteuert. Standardwert isttrue.useDefaultExcludes(boolean, optional): Legt fest, ob eine Liste von Standard-Ausschlussmustern angewendet wird (z. B.node_modules,.git, binäre Dateien, die keine Bilder oder PDFs sind). Standardwert isttrue.respect_git_ignore(boolean, optional): Gibt an, ob.gitignore-Muster beim Suchen von Dateien berücksichtigt werden sollen. Standardwert isttrue.
Wie man read_many_files mit Qwen Code verwendet
read_many_files sucht nach Dateien, die den angegebenen paths- und include-Mustern entsprechen, und berücksichtigt dabei exclude-Muster sowie Standard-Ausschlüsse (falls aktiviert).
- Für Textdateien: Der Inhalt jeder gefundenen Datei wird gelesen (es wird versucht, Binärdateien zu überspringen, es sei denn, sie wurden explizit als Bild/PDF angefordert). Die Inhalte werden zu einem einzigen String zusammengefasst, wobei zwischen den Inhalten der einzelnen Dateien der Trenner
--- {filePath} ---eingefügt wird. Standardmäßig wird UTF-8-Encoding verwendet. - Für Bilder und PDFs: Wenn explizit nach Name oder Erweiterung angefordert (z. B.
paths: ["logo.png"]oderinclude: ["*.pdf"]), liest das Tool die Datei und gibt ihren Inhalt als base64-kodierten String zurück. - Für andere Binärdateien: Das Tool versucht, diese zu erkennen und zu überspringen (solche, die weder zu den gängigen Bild-/PDF-Typen gehören noch explizit angefordert wurden), indem es auf das Vorhandensein von Null-Bytes im Anfangsbereich prüft.
Verwendung:
read_many_files(paths=["Deine Dateien oder Pfade hier."], include=["Zusätzliche Dateien zum Einbinden."], exclude=["Dateien zum Ausschließen."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)
read_many_files Beispiele
Lese alle TypeScript-Dateien im src Verzeichnis:
read_many_files(paths=["src/**/*.ts"])
Lese die Haupt-README, alle Markdown-Dateien im docs Verzeichnis und ein bestimmtes Logo-Bild, ausgenommen eine bestimmte Datei:
read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])
Lese alle JavaScript-Dateien, aber schließe Testdateien explizit ein und alle JPEGs in einem images Ordner:
read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)
Wichtige Hinweise
- Umgang mit Binärdateien:
- Bild-/PDF-/Audio-/Videodateien: Das Tool kann gängige Bildformate (PNG, JPEG, etc.), PDF-, Audio- (mp3, wav) und Videodateien (mp4, mov) lesen und gibt diese als base64-kodierte Daten zurück. Diese Dateien müssen explizit über die
paths- oderinclude-Muster angesprochen werden (z. B. durch Angabe des exakten Dateinamens wievideo.mp4oder eines Musters wie*.mov). - Andere Binärdateien: Das Tool versucht, andere Binärdateitypen zu erkennen und zu überspringen, indem es den Anfang der Datei auf null-Bytes prüft. Solche Dateien werden von der Ausgabe ausgeschlossen.
- Bild-/PDF-/Audio-/Videodateien: Das Tool kann gängige Bildformate (PNG, JPEG, etc.), PDF-, Audio- (mp3, wav) und Videodateien (mp4, mov) lesen und gibt diese als base64-kodierte Daten zurück. Diese Dateien müssen explizit über die
- Performance: Das Lesen einer sehr großen Anzahl an Dateien oder einzelner sehr großer Dateien kann ressourcenintensiv sein.
- Pfadangaben: Stelle sicher, dass Pfade und Glob-Muster korrekt relativ zum Zielverzeichnis des Tools angegeben sind. Bei Bild-/PDF-Dateien solltest du sicherstellen, dass die Muster spezifisch genug sind, um sie einzuschließen.
- Standardmäßig ausgeschlossene Pfade: Beachte die standardmäßig ausgeschlossenen Pfade (wie
node_modules,.git) und verwendeuseDefaultExcludes=False, wenn du diese überschreiben musst – aber tue dies mit Vorsicht.