FileSystem
Provides file system operations within a Sandbox.
Constructors
new FileSystem()
new FileSystem(instance: SandboxInstance, toolboxApi: ToolboxApi): FileSystem
Parameters:
instance
SandboxInstancetoolboxApi
ToolboxApi
Returns:
FileSystem
Methods
createFolder()
createFolder(path: string, mode: string): Promise<void>
Create a new directory in the Sandbox with specified permissions.
Parameters:
path
string - Path where the directory should be createdmode
string - Directory permissions in octal format (e.g. “755”)
Returns:
Promise<void>
Example:
// Create a directory with standard permissionsawait fs.createFolder('/app/data', '755');
deleteFile()
deleteFile(path: string): Promise<void>
Deletes a file or directory from the Sandbox.
Parameters:
path
string - Path to the file or directory to delete
Returns:
Promise<void>
Example:
// Delete a fileawait fs.deleteFile('/app/temp.log');
downloadFile()
downloadFile(path: string): Promise<Blob>
Downloads a file from the Sandbox.
Parameters:
path
string - Path to the file to download
Returns:
Promise<Blob>
- The file contents as a Blob
Example:
// Download and process a fileconst fileBlob = await fs.downloadFile('/app/data.json');console.log('File content:', fileBlob.toString());
findFiles()
findFiles(path: string, pattern: string): Promise<Match[]>
Searches for text patterns within files in the Sandbox.
Parameters:
path
string - Directory to search inpattern
string - Search pattern
Returns:
Promise<Match[]>
- Array of matches with file and line information
Example:
// Find all TODO comments in TypeScript filesconst matches = await fs.findFiles('/app/src', 'TODO:');matches.forEach(match => { console.log(`${match.file}:${match.line}: ${match.content}`);});
getFileDetails()
getFileDetails(path: string): Promise<FileInfo>
Retrieves detailed information about a file or directory.
Parameters:
path
string - Path to the file or directory
Returns:
Promise<FileInfo>
- Detailed file information including size, permissions, modification time
Example:
// Get file detailsconst info = await fs.getFileDetails('/app/config.json');console.log(`Size: ${info.size}, Modified: ${info.modTime}`);
listFiles()
listFiles(path: string): Promise<FileInfo[]>
Lists contents of a directory in the Sandbox.
Parameters:
path
string - Directory path to list
Returns:
Promise<FileInfo[]>
- Array of file and directory information
Example:
// List directory contentsconst files = await fs.listFiles('/app/src');files.forEach(file => { console.log(`${file.name} (${file.size} bytes)`);});
moveFiles()
moveFiles(source: string, destination: string): Promise<void>
Moves or renames a file or directory.
Parameters:
source
string - Source pathdestination
string - Destination path
Returns:
Promise<void>
Example:
// Move a file to a new locationawait fs.moveFiles('/app/temp/data.json', '/app/data/data.json');
replaceInFiles()
replaceInFiles( files: string[], pattern: string,newValue: string): Promise<ReplaceResult[]>
Replaces text content in multiple files.
Parameters:
files
string[] - Array of file paths to processpattern
string - Pattern to replacenewValue
string - Replacement text
Returns:
Promise<ReplaceResult[]>
- Results of the replace operation for each file
Example:
// Update version number across multiple filesconst results = await fs.replaceInFiles( ['/app/package.json', '/app/version.ts'], '"version": "1.0.0"', '"version": "1.1.0"');
searchFiles()
searchFiles(path: string, pattern: string): Promise<SearchFilesResponse>
Searches for files and directories by name pattern in the Sandbox.
Parameters:
path
string - Directory to search inpattern
string - File name pattern (supports globs)
Returns:
Promise<SearchFilesResponse>
- Search results with matching files
Example:
// Find all TypeScript filesconst result = await fs.searchFiles('/app', '*.ts');result.files.forEach(file => console.log(file));
setFilePermissions()
setFilePermissions(path: string, permissions: FilePermissionsParams): Promise<void>
Sets permissions and ownership for a file or directory.
Parameters:
path
string - Path to the file or directorypermissions
FilePermissionsParams - Permission settings
Returns:
Promise<void>
Example:
// Set file permissions and ownershipawait fs.setFilePermissions('/app/script.sh', { owner: 'daytona', group: 'users', mode: '755' // Execute permission for shell script});
uploadFile()
uploadFile(path: string, file: File): Promise<void>
Uploads a file to the Sandbox.
Parameters:
path
string - Destination path in the Sandboxfile
File - File to upload
Returns:
Promise<void>
Example:
// Upload a configuration fileconst configFile = new File(['{"setting": "value"}'], 'config.json');await fs.uploadFile('/app/config.json', configFile);
uploadFiles()
uploadFiles(files: FileUpload[]): Promise<void>
Uploads multiple files to the Sandbox. The parent directories must exist. If files already exist at the destination paths, they will be overwritten.
Parameters:
files
FileUpload[] - Array of files to upload
Returns:
Promise<void>
Example:
// Upload multiple text filesconst files = [ { path: '/app/data/file1.txt', content: new File(['Content of file 1'], 'file1.txt') }, { path: '/app/data/file2.txt', content: new File(['Content of file 2'], 'file2.txt') }, { path: '/app/config/settings.json', content: new File(['{"key": "value"}'], 'settings.json') }];await fs.uploadFiles(files);
FilePermissionsParams
Parameters for setting file permissions in the Sandbox.
Properties:
group?
string - Group owner of the filemode?
string - File mode/permissions in octal format (e.g. “644”)owner?
string - User owner of the file
Example:
const permissions: FilePermissionsParams = { mode: '644', owner: 'daytona', group: 'users'};
FileUpload
Represents a file to be uploaded to the Sandbox.
Properties:
content
File - File to uploadpath
string - Absolute destination path in the Sandbox