Skip to content

FileSystem

Provides file system operations within a Sandbox.

Constructors

new FileSystem()

new FileSystem(instance: SandboxInstance, toolboxApi: ToolboxApi): FileSystem

Parameters:

  • instance SandboxInstance
  • toolboxApi 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 created
  • mode string - Directory permissions in octal format (e.g. “755”)

Returns:

  • Promise<void>

Example:

// Create a directory with standard permissions
await 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 file
await 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 file
const 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 in
  • pattern string - Search pattern

Returns:

  • Promise<Match[]> - Array of matches with file and line information

Example:

// Find all TODO comments in TypeScript files
const 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 details
const 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 contents
const 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 path
  • destination string - Destination path

Returns:

  • Promise<void>

Example:

// Move a file to a new location
await 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 process
  • pattern string - Pattern to replace
  • newValue string - Replacement text

Returns:

  • Promise<ReplaceResult[]> - Results of the replace operation for each file

Example:

// Update version number across multiple files
const 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 in
  • pattern string - File name pattern (supports globs)

Returns:

  • Promise<SearchFilesResponse> - Search results with matching files

Example:

// Find all TypeScript files
const 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 directory
  • permissions FilePermissionsParams - Permission settings

Returns:

  • Promise<void>

Example:

// Set file permissions and ownership
await 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 Sandbox
  • file File - File to upload

Returns:

  • Promise<void>

Example:

// Upload a configuration file
const 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 files
const 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 file
  • mode? 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 upload
  • path string - Absolute destination path in the Sandbox