Resource Functions

CreateDirectory(dirUrl) : Boolean

Creates a directory.
Returns false if directory already exists.

CreateDirectory Parameters

dirUrl : Url
Directory URL to create.

CreateDirectory Examples

var ok = CreateDirectory('sftp://user:password@host.com/directory');
var ok = CreateDirectory('res:///internal/directory');
var ok = CreateDirectory('gdrive://name/directory');

DeleteDirectory(dirUrl, keepSelf = false) : Boolean

Deletes a directory with all sub-dirs and files.
Returns false if directory does not exist.

DeleteDirectory Parameters

dirUrl : Url
Directory URL to delete.

keepSelf : Boolean = false
True to delete everything inside but keep the directory itself.

DeleteDirectory Examples

var ok = DeleteDirectory('sftp://user:password@host.com/directory');
var ok = DeleteDirectory('res:///internal/directory', true);
var ok = DeleteDirectory('gdrive://name/directory');

DeleteFile(url) : Boolean

Deletes a file.
Returns false if file does not exist.

DeleteFile Parameters

url : Url

DeleteFile Examples

var ok = DeleteFile('sftp://user:password@host.com/directory/file.ext');
var ok = DeleteFile('res:///internal/directory/file.ext');
var ok = DeleteFile('gdrive://name/directory/file.ext');

Extract(archive, path) : Resource?

Extracts a resource file from resource container (archive).

Extract Parameters

archive : Resource?

path : String

Extract Examples

var csv = File('res:///internal/archive.zip').Extract('data.csv');

File(url) : Resource?

Alias: GetFile

Returns file resource from specified URL.

File Parameters

url : Url

File Examples

var csv = File('res:///internal/data.csv');

FileExists(url) : Boolean

Checks if specified URL points to an existing file.

FileExists Parameters

url : Url

FileExists Examples

var ok = FileExists('res:///internal/data.csv');

FromBase64(base64, asUTF8 = false) : Binary?

Converts Base64 string to binary content.

FromBase64 Parameters

base64 : String?

asUTF8 : Boolean = false
True to convert decoded data to string using UTF-8 and to return the string.

FromBase64 Examples

var msg = FromBase64('R25vc2lzIERvY3VtZW50YXRpb24gRXhhbXBsZQ==', true);

GetPublicUrl(resource) : Url?

Returns public URL for a resource if possible.
Public URL can be used to download the resource from client.

GetPublicUrl Parameters

resource : Resource?

GetPublicUrl Examples

var streamingUrl = File('s3://bucket/video.mp4').GetPublicUrl();

GetText(resource) : String?

Loads file content as text.

GetText Parameters

resource : Resource?

GetText Examples

var text = File('res:///internal/default.txt').GetText();

GetTextLines(resource, offset = -1) : String[]

Loads text lines from file and returns lazy array of strings.

GetTextLines Parameters

resource : Resource?

offset : Long = -1
Non-negative to return line offset on read. Value is used as the initial offset.

GetTextLines Examples

var lines = File('res:///internal/default.txt').GetTextLines();

ListFiles(url, mask?, dir?, recursiveFiles = false) : ResourceInfo[]?

Lists directory or file container contents.

ListFiles Parameters

url : Url
Can be also resource container (e.g. zip file resource).

mask? : String?
Null to list all files.
Mask is not applied to directories, all directories are always listed.

dir? : String?
Relative directory within base URL or container.

recursiveFiles : Boolean = false
True to get all files (filtered by mask) from all sub-dirs.

ListFiles Examples

var dirsAndfiles = ListFiles('res:///internal', '*.csv');
var files = ListFiles('res:///internal', '*.csv', null, true);
var files = File('res:///internal/archive.zip').ListFiles('*.csv', 'data', true);

MoveFile(sourceUrl, newName) : Boolean

Moves or renames a file.

MoveFile Parameters

sourceUrl : Url
Source URL to move or rename.

newName : String
New name to rename to (or relative path to move+rename).

MoveFile Examples

var ok = MoveFile('res:///internal/file.txt', 'current.txt'); // just rename in place
var ok = MoveFile('res:///internal/file.txt', 'sub/file.txt'); // move to sub-dir
var ok = MoveFile('res:///internal/file.txt', 'sub/current.txt'); // move to sub-dir and rename
var ok = MoveFile('res:///internal/file.txt', '/file.txt'); // move to the root dir 'res:///file.txt'

SaveFile(content, url, forceOverwrite = false) : Boolean

Alias: Save

Saves data to a file (creates new file or overwrites existing one).

SaveFile Parameters

content : Binary?
New file content.

url : Url
File URL to save content.

forceOverwrite : Boolean = false
True to overwrite existing file if any.

SaveFile Examples

var ok = SaveFile('Test content', 'res:///internal/file.txt');
var ok = File('res:///internal/file.txt').SaveFile('gdrive://name/file.txt', true);

ToBase64(content, lineBreaks = false) : String?

Converts binary content to Base64 string.

ToBase64 Parameters

content : Binary?

lineBreaks : Boolean = false
True to insert line breaks every 76 characters.

ToBase64 Examples

var encoded = ToBase64('Gnosis Documentation Example');
var encoded = File('res:///internal/file.txt').ToBase64(true);

ToFile(content, filename?, modificationTime?, skipBom = false) : Resource?

Converts content to memory file resource.

ToFile Parameters

content : Binary?

filename? : String?

modificationTime? : DateTime?

skipBom : Boolean = false

ToFile Examples

var memoryFile = ToFile('Test Data', 'file.txt');
var memoryFile = File('res:///internal/file.txt').ToFile();

ToHex(content, upperCase = false, spaced = false, lineFeedEvery = 0) : String?

Converts binary content to hex string.

ToHex Parameters

content : Binary?

upperCase : Boolean = false
True to use capital hexadecimal letters.

spaced : Boolean = false
True to insert space after each encoded byte.

lineFeedEvery : Integer = 0
Set to non-negative number to insert line breaks every N encoded bytes.

ToHex Examples

var ok = ToHex('Test Data ©') == '54657374204461746120c2a9';
var ok = ToHex('Test Data ©', true) == '54657374204461746120C2A9';
var ok = ToHex('Test Data ©', true, true) == '54 65 73 74 20 44 61 74 61 20 C2 A9';

Zip(files, archiveName?, password?, level?) : Resource?

Compresses files to a zip archive and returns file resource.

Zip Parameters

files : []?
array of resources or objects { Name = name, Content = binary }

archiveName? : String?

password? : String?

level? : int?
compression level 1..9

Zip Examples

var zipFile = Zip([File('res:///file.txt'), { Name='second.txt', Content='Test Data' }], 'archive.zip');

Leave a Comment

Your email address will not be published. Required fields are marked *