Descrição
A classe FileSystem fornece métodos para operações com arquivos em uma sessão de ambiente de nuvem do AgentBay, incluindo leitura, gravação, edição e busca de arquivos, além de gerenciamento de diretórios.
|
Método |
Descrição |
Ambiente |
||||
|
Linux Computer Use |
Windows Computer Use |
Browser Use |
Mobile Use |
Code Space |
||
|
|
Lê o conteúdo do arquivo. Aceita limites de deslocamento e tamanho. Nota
Compatível apenas com arquivos codificados em UTF-8. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Grava um arquivo grande em blocos. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Lê um arquivo grande em blocos. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Lê vários arquivos simultaneamente. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Cria ou grava em um arquivo. Aceita os modos de sobrescrita e anexação. Nota
Compatível apenas com arquivos codificados em UTF-8. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Edite o arquivo linha a linha. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Crie um diretório, inclusive diretórios aninhados. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Lista o conteúdo de uma pasta. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Busca recursivamente por arquivos e pastas. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Move ou renomeia um arquivo ou pasta. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
|
|
Recupera metadados de um arquivo ou diretório. |
Compatível |
Compatível |
Compatível |
Incompatível |
Compatível |
Métodos
create_directory / createDirectory / CreateDirectory - Criar uma pasta
Golang
func (fs *FileSystem) CreateDirectory(path string) (bool, error)
Parâmetro:
path (string): Caminho da pasta a criar.
Valores de retorno:
bool: Retornatruese a pasta for criada com sucesso.error: Retorna uma mensagem de erro se a criação da pasta falhar.
Exemplo:
// Create a folder
success, err := session.FileSystem.CreateDirectory("/tmp/test")
if err != nil {
log.Printf("Error creating folder: %v", err)
} else {
fmt.Printf("Folder created: %t\n", success)
}
Python
create_directory(path: str) -> BoolResult
Parâmetro:
path (str): Caminho da pasta a criar.
Valor de retorno:
BoolResult: Objeto de resultado com status de sucesso booleano (Trueem caso de sucesso), ID da solicitação e eventual mensagem de erro.
O tipo de retorno mudou de um booleano simples para um objeto estruturado BoolResult para fornecer mais detalhes na resposta.
TypeScript
createDirectory(path: string): Promise<string>
Parâmetro:
path (string): Caminho da pasta a criar.
Valor de retorno:
Promise<string>: Retorna o texto da resposta se a pasta for criada com sucesso.
Exceção:
APIError: Lança um erro se a criação da pasta falhar.
EditFile - Editar um arquivo
Golang
func (fs *FileSystem) EditFile(path string, edits []map[string]string, dryRun bool) (bool, error)
Parâmetros:
path (string): Caminho do arquivo a editar.
edits ([]map[string]string): Array de operações de edição, cada uma contendo
oldTextenewText.dryRun (bool): Se
true, visualiza as alterações sem aplicá-las.
Valores de retorno:
bool: Retornatruese o arquivo for editado com sucesso.error: Retorna uma mensagem de erro se a edição do arquivo falhar.
Exemplo:
// Edit the file
edits := []map[string]string{
{"oldText": "Hello", "newText": "Hi"},
}
success, err := session.FileSystem.EditFile("/tmp/test/example.txt", edits, false)
if err != nil {
log.Printf("Error editing file: %v", err)
} else {
fmt.Printf("File edited successfully: %t\n", success)
}
Python
edit_file(path: str, edits: List[Dict[str, str]], dry_run: bool = False) -> BoolResult
Parâmetros:
path (str): Caminho do arquivo a editar.edits (List[Dict[str, str]]): Lista de operações de edição. Cada operação contémoldTextenewText.dry_run (bool, optional): Defina se as alterações devem ser visualizadas sem aplicação. O padrão éFalse.
Valor de retorno:
BoolResult: Objeto de resultado com valor booleano definido comoTrueem caso de sucesso, ID da solicitação e mensagem de erro se ocorrer uma falha.
TypeScript
editFile(
path: string,
edits: Array<{ oldText: string, newText: string }>,
dryRun?: boolean
): Promise<string>
Parâmetros:
path (string): Caminho do arquivo a editar.
edits (Array<{ oldText: string, newText: string }>): Array de operações de edição, cada uma contendo
oldTextenewText.dryRun (boolean, optional): Se
true, visualiza as alterações sem aplicá-las. O padrão éfalse.
Valor de retorno:
Promise<string>: Retorna o texto da resposta se o arquivo for editado com sucesso.
Exceção:
APIError: Lança um erro se a edição do arquivo falhar.
GetFileInfo - Obter informações do arquivo
Golang
func (fs *FileSystem) GetFileInfo(path string) (string, error)
Parâmetro:
path (string): Caminho do arquivo ou pasta a consultar.
Valores de retorno:
string: Informações textuais do arquivo ou pasta, como tamanho e permissões.error: Retorna uma mensagem de erro se a recuperação das informações falhar.
Exemplo:
// Get file information
fileInfo, err := session.FileSystem.GetFileInfo("/tmp/test/example.txt")
if err != nil {
log.Printf("Error getting file info: %v", err)
} else {
fmt.Printf("File info: %s\n", fileInfo)
}
Python
get_file_info(path: str) -> OperationResult
Parâmetro:
path (str): Caminho do arquivo ou pasta a consultar.
Valor de retorno:
OperationResult: Objeto de resultado com informações do arquivo (como tamanho e hora de modificação), status de sucesso, ID da solicitação e mensagem de erro se a operação falhar.
TypeScript
getFileInfo(path: string): Promise<string>
Parâmetro:
path (string): Caminho do arquivo ou pasta a consultar.
Valor de retorno:
Promise<string>: Retorna as informações textuais do arquivo ou pasta, como tamanho e permissões.
Exceção:
APIError: Lança um erro se a recuperação das informações falhar.
ListDirectory - Listar uma pasta
Golang
func (fs *FileSystem) ListDirectory(path string) (*DirectoryListResult, error)
Parâmetro:
path (string): Caminho da pasta a listar.
Valores de retorno:
*DirectoryListResult: Objeto de resultado que contém as entradas da pasta e o ID da solicitação.error: Retorna uma mensagem de erro se a listagem da pasta falhar.
Estrutura DirectoryListResult:
type DirectoryListResult struct {
RequestID string // A unique request identifier for debugging.
Entries []*DirectoryEntry // An array of folder entries.
}
type DirectoryEntry struct {
Name string // The name of the file or folder.
IsDirectory bool // Specifies whether an entry is a folder.
}
Exemplo:
// List the folder
listResult, err := session.FileSystem.ListDirectory("/tmp/test")
if err != nil {
log.Printf("Error listing folder: %v", err)
} else {
for _, entry := range listResult.Entries {
entryType := "Folder"
if !entry.IsDirectory {
entryType = "File"
}
fmt.Printf("%s: %s\n", entryType, entry.Name)
}
}
Python
list_directory(path: str) -> OperationResult
Parâmetro:
path (str): Caminho da pasta a listar.
Valor de retorno:
OperationResult: Objeto de resultado com uma lista de entradas de diretório (nomes de arquivos e subdiretórios), status de sucesso, ID da solicitação e mensagem de erro se a operação falhar.
TypeScript
listDirectory(path: string): Promise<any>
Parâmetro:
path (string): Caminho da pasta a listar.
Valor de retorno:
Promise<any>: Retorna um array de entradas da pasta se a análise for bem-sucedida. Caso contrário, retorna o conteúdo de texto original.
Exceção:
APIError: Lança um erro se a listagem da pasta falhar.
MoveFile - Mover um arquivo
Golang
func (fs *FileSystem) MoveFile(source, destination string) (*FileDirectoryResult, error)
Parâmetros:
source (string): Caminho do arquivo ou pasta de origem.
destination (string): Caminho do arquivo ou pasta de destino.
Valores de retorno:
*FileDirectoryResult: Objeto de resultado que contém o status da operação e o ID da solicitação.error: Retorna uma mensagem de erro se a movimentação do arquivo falhar.
Estrutura FileDirectoryResult:
type FileDirectoryResult struct {
RequestID string // A unique request identifier for debugging.
Success bool // Specifies whether the operation is successful.
}
Python
move_file(source: str, destination: str) -> BoolResult
Parâmetros:
source (str): Caminho do arquivo ou pasta de origem.destination (str): Caminho do arquivo ou pasta de destino.
Valor de retorno:
BoolResult: Objeto de resultado com o status da operação, um valor booleano (Trueem caso de sucesso), ID da solicitação e mensagem de erro (se houver).
TypeScript
moveFile(source: string, destination: string): Promise<string>
Parâmetros:
source (string): Caminho do arquivo ou pasta de origem.
destination (string): Caminho do arquivo ou pasta de destino.
Valor de retorno:
Promise<string>: Retorna o texto da resposta se o arquivo for movido com sucesso.
Exceção:
APIError: Lança um erro se a movimentação do arquivo falhar.
ReadFile - Ler um arquivo
Golang
func (fs *FileSystem) ReadFile(path string, optionalParams ...int) (*FileReadResult, error)
Parâmetros:
path (string): Caminho do arquivo a ler.
optionalParams (int, optional): Parâmetros opcionais para deslocamento e tamanho.
Valores de retorno:
*FileReadResult: Objeto de resultado que contém o conteúdo do arquivo e o ID da solicitação.error: Retorna uma mensagem de erro se a leitura do arquivo falhar.
Estrutura FileReadResult:
type FileReadResult struct {
RequestID string // A unique request identifier for debugging.
Content string // The file content.
}
Exemplo:
// Read the file
readResult, err := session.FileSystem.ReadFile("/etc/hosts")
if err != nil {
log.Printf("Error reading file: %v", err)
} else {
fmt.Printf("File content: %s\n", readResult.Content)
}
Python
read_file(path: str, offset: int = 0, length: int = 0) -> OperationResult
Parâmetros:
path (str): Caminho do arquivo a ler.offset (int, optional): Deslocamento em bytes a partir do qual iniciar a leitura. O padrão é 0.length (int, optional): Número de bytes a ler. Se 0, lê até o final do arquivo. O padrão é 0.
Valor de retorno:
OperationResult: Objeto de resultado com o conteúdo do arquivo como string, status de sucesso, ID da solicitação e mensagem de erro se a operação falhar.
TypeScript
readFile(path: string, offset?: number, length?: number): Promise<string>
Parâmetros:
path (string): Caminho do arquivo a ler.
offset (number, optional): Deslocamento em bytes a partir do qual iniciar a leitura. O padrão é
0.length (number, optional): Número de bytes a ler. Se
0, lê até o final do arquivo. O padrão é0.
Valor de retorno:
Promise<string>: Retorna o conteúdo do arquivo.
Exceção:
APIError: Lança um erro se a leitura do arquivo falhar.
ReadMultipleFiles - Ler vários arquivos
Golang
func (fs *FileSystem) ReadMultipleFiles(paths []string) (string, error)
Parâmetro:
paths ([]string): Array de caminhos de arquivos a ler.
Valores de retorno:
string: Mapeamento textual dos caminhos dos arquivos para seus respectivos conteúdos.error: Retorna uma mensagem de erro se a leitura dos arquivos falhar.
Python
read_multiple_files(paths: List[str]) -> OperationResult
Parâmetro:
paths (List[str]): Lista de caminhos de arquivos a ler.
Valor de retorno:
OperationResult: Objeto de resultado com um dicionário mapeando caminhos de arquivos para seus conteúdos, status de sucesso, ID da solicitação e mensagem de erro se a operação falhar.
TypeScript
readMultipleFiles(paths: string[]): Promise<string>
Parâmetro:
paths (string[]): Array de caminhos de arquivos a ler.
Valor de retorno:
Promise<string>: Retorna um mapeamento textual dos caminhos dos arquivos para seus respectivos conteúdos.
Exceção:
APIError: Lança um erro se a leitura dos arquivos falhar.
SearchFiles - Buscar arquivos
Golang
func (fs *FileSystem) SearchFiles(path, pattern string, excludePatterns []string) (*SearchFilesResult, error)
Parâmetros:
path (string): Caminho da pasta inicial para a busca.
pattern (string): Padrão de correspondência.
excludePatterns ([]string): Array de padrões de exclusão.
Valores de retorno:
*SearchFilesResult: Objeto de resultado que contém os resultados da busca e o ID da solicitação.error: Retorna uma mensagem de erro se a busca falhar.
Estrutura SearchFilesResult:
type SearchFilesResult struct {
RequestID string // A unique request identifier for debugging.
Results []string // An array of search results.
}
Python
search_files(path: str, pattern: str, exclude_patterns: Optional[List[str]] = None) -> OperationResult
Parâmetros:
path (str): Caminho da pasta para iniciar a busca.pattern (str): Padrão a corresponder, como correspondência com curinga.exclude_patterns (List[str], optional): Lista de padrões a excluir. O padrão éNone.
Valor de retorno:
OperationResult: Objeto de resultado com os resultados da busca (uma lista de caminhos de arquivos correspondentes), status de sucesso, ID da solicitação e mensagem de erro se a operação falhar.
TypeScript
searchFiles(
path: string,
pattern: string,
excludePatterns?: string[]
): Promise<any[]>
Parâmetros:
path (string): Caminho da pasta inicial para a busca.
pattern (string): Padrão de correspondência.
excludePatterns (string[], optional): Array de padrões de exclusão. O padrão é um array vazio.
Valor de retorno:
Promise<any[]>: Retorna um array de resultados da busca.
Exceção:
APIError: Lança um erro se a busca falhar.
WriteFile - Gravar em um arquivo
Golang
func (fs *FileSystem) WriteFile(path, content string, mode string) (*FileWriteResult, error)
Parâmetros:
path (string): Caminho do arquivo onde gravar.
content (string): Conteúdo a gravar.
mode (string): Modo, que pode ser
"overwrite"(padrão),"append"ou"create_new".
Valores de retorno:
*FileWriteResult: Objeto de resultado que contém o status da operação e o ID da solicitação.error: Retorna uma mensagem de erro se a operação de gravação falhar.
Estrutura FileWriteResult:
type FileWriteResult struct {
RequestID string // A unique request identifier for debugging.
Success bool // Specifies whether the file was written successfully.
}
Exemplo:
// Write to the file
writeResult, err := session.FileSystem.WriteFile("/tmp/test/example.txt", "Hello, world!", "overwrite")
if err != nil {
log.Printf("Error writing file: %v", err)
} else {
fmt.Printf("File written successfully: %t\n", writeResult.Success)
}
Python
write_file(path: str, content: str, mode: str = "overwrite") -> bool
Parâmetros:
path (str): Caminho do arquivo onde gravar.content (str): Conteúdo a gravar.mode (str, optional): Modo de gravação, que pode ser"overwrite"(padrão) ou"append".
Valor de retorno:
bool: Indica se o arquivo foi gravado com sucesso.
Exceção:
FileError: Lança uma exceção se a operação de gravação falhar.
TypeScript
writeFile(path: string, content: string, mode?: string): Promise<string>
Parâmetros:
path (string): Caminho do arquivo onde gravar.
content (string): Conteúdo a gravar.
mode (string, optional): Modo, que pode ser
"overwrite"(padrão),"append"ou"create_new".
Valor de retorno:
Promise<string>: Retorna o texto da resposta se o arquivo for gravado com sucesso.
Exceção:
APIError: Lança um erro se a operação de gravação falhar.
ReadLargeFile - Ler um arquivo grande
Golang
func (fs *FileSystem) ReadLargeFile(path string, chunkSize int) (string, error)
Parâmetros:
path (string): Caminho do arquivo a ler.
chunkSize (int): Tamanho de cada bloco de dados em bytes.
Valores de retorno:
string: Conteúdo completo do arquivo.error: Retorna uma mensagem de erro se a leitura do arquivo falhar.
Python
read_large_file_in_chunks(path: str, chunk_size: int) -> Generator[OperationResult, None, None]
Parâmetros:
path (str): Caminho do arquivo grande a ler.chunk_size (int): Tamanho do bloco por iteração, em bytes.
Valor de retorno:
Generator[OperationResult, None, None]: Gerador que produz um objeto de resultado com o conteúdo do bloco do arquivo a cada iteração.
Finalidade:
Contorna as limitações de tamanho de arquivo da API subjacente ao processar o arquivo em blocos.
TypeScript
readLargeFile(path: string, chunkSize?: number): Promise<string>
Parâmetros:
path (string): Caminho do arquivo a ler.
chunkSize (number, optional): Tamanho de cada bloco de dados em bytes. O padrão é
60 KB.
Valor de retorno:
Promise<string>: Retorna o conteúdo completo do arquivo.
Exceção:
APIError: Lança um erro se a leitura do arquivo falhar.
WriteLargeFile - Gravar em um arquivo grande
Golang
func (fs *FileSystem) WriteLargeFile(path, content string, chunkSize int) (bool, error)
Parâmetros:
path (string): Caminho do arquivo onde gravar.
content (string): Conteúdo a gravar.
chunkSize (int): Tamanho de cada bloco de dados em bytes.
Valores de retorno:
bool: Retornatruese o arquivo for gravado com sucesso.error: Retorna uma mensagem de erro se a operação de gravação falhar.
Exemplo básico de operação de arquivo:
package main
import (
"fmt"
"log"
)
func main() {
// Create a session
agentBay := agentbay.NewAgentBay("your-api-key")
sessionResult, err := agentBay.Create(nil)
if err != nil {
log.Fatal(err)
}
session := sessionResult.Session
// Read the file
readResult, err := session.FileSystem.ReadFile("/etc/hosts")
if err != nil {
log.Printf("Error reading file: %v", err)
} else {
fmt.Printf("File content: %s\n", readResult.Content)
}
// Create a folder
success, err := session.FileSystem.CreateDirectory("/tmp/test")
if err != nil {
log.Printf("Error creating folder: %v", err)
} else {
fmt.Printf("Folder created: %t\n", success)
}
// Write to the file
writeResult, err := session.FileSystem.WriteFile("/tmp/test/example.txt", "Hello, world!", "overwrite")
if err != nil {
log.Printf("Error writing file: %v", err)
} else {
fmt.Printf("File written successfully: %t\n", writeResult.Success)
}
// Edit the file
edits := []map[string]string{
{"oldText": "Hello", "newText": "Hi"},
}
success, err = session.FileSystem.EditFile("/tmp/test/example.txt", edits, false)
if err != nil {
log.Printf("Error editing file: %v", err)
} else {
fmt.Printf("File edited successfully: %t\n", success)
}
// Get file information
fileInfo, err := session.FileSystem.GetFileInfo("/tmp/test/example.txt")
if err != nil {
log.Printf("Error getting file info: %v", err)
} else {
fmt.Printf("File info: %s\n", fileInfo)
}
// List the folder
listResult, err := session.FileSystem.ListDirectory("/tmp/test")
if err != nil {
log.Printf("Error listing folder: %v", err)
} else {
for _, entry := range listResult.Entries {
entryType := "Folder"
if !entry.IsDirectory {
entryType = "File"
}
fmt.Printf("%s: %s\n", entryType, entry.Name)
}
}
}
TypeScript
writeLargeFile(path: string, content: string, chunkSize?: number): Promise<boolean>
Parâmetros:
path (string): Caminho do arquivo onde gravar.
content (string): Conteúdo a gravar.
chunkSize (number, optional): Tamanho de cada bloco de dados em bytes. O padrão é
60 KB.
Valor de retorno:
Promise<boolean>: Retornatruese o arquivo for gravado com sucesso.
Exceção:
APIError: Lança um erro se a operação de gravação falhar.