Skip to end of metadata
Go to start of metadata

Refresh page Jul 07, 2020 22:56

Supported Clients
SmartClient WebClient NGClient

Methods Summary
Boolean appendToTXTFile(file, text) Appends a string given in parameter to a file, using default platform encoding.
Boolean appendToTXTFile(file, text, encoding) Appends a string given in parameter to a file, using the specified encoding.
Boolean appendToTXTFile(file, text) Appends a string given in parameter to a file, using default platform encoding.
Boolean appendToTXTFile(file, text, encoding) Appends a string given in parameter to a file, using the specified encoding.
JSFile convertToJSFile(file) Returns a JSFile instance corresponding to an alternative representation of a file (for example a string).
JSFile convertToRemoteJSFile(path) Convenience return to get a JSFile representation of a server file based on its path.
Boolean copyFile(source, destination) Copies the source file to the destination file.
Boolean copyFolder(source, destination) Copies the sourcefolder to the destination folder, recursively.
JSFile createFile(targetFile) Creates a JSFile instance.
Boolean createFolder(destination) Creates a folder on disk.
JSFile createTempFile(prefix, suffix) Creates a temporary file on disk.
Boolean deleteFile(destination) Removes a file from disk.
Boolean deleteFolder(destination, showWarning) Deletes a folder from disk recursively.
String getDefaultUploadLocation() Returns the default upload location path of the server.
JSFile getDesktopFolder() Returns a JSFile instance that corresponds to the Desktop folder of the currently logged in user.
Array getDiskList() Returns an Array of JSFile instances correponding to the file system root folders.
Number getFileSize(fileOrPath) Returns the size of the specified file.
Array getFolderContents(targetFolder) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption, visibleOption) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption, visibleOption) Returns an array of JSFile instances corresponding to content of the specified folder.
Array getFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption) Returns an array of JSFile instances corresponding to content of the specified folder.
JSFile getHomeFolder() Returns a JSFile instance corresponding to the home folder of the logged in used.
Date getModificationDate(fileOrPath) Returns the modification date of a file.
Array getRemoteFolderContents(targetFolder) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
Array getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption) Returns an array of JSFile instances corresponding to content of the specified folder on the server side.
String getUrlForRemoteFile(file) Get a url from a remote file that can be used to download the file in a browser.
String getUrlForRemoteFile(file) Get a url from a remote file that can be used to download the file in a browser.
Boolean moveFile(source, destination) Moves the file from the source to the destination place.
Boolean openFile(file) Opens the given local file.
Boolean openFile(file, webClientTarget, webClientTargetOptions) Opens the given local file.
Boolean openFile(fileName, data, mimeType) Opens the given data as a file.
Boolean openFile(fileName, data, mimeType, webClientTarget, webClientTargetOptions) Opens the given data as a file.
Array readFile() Reads all or part of the content from a binary file.
Array readFile(file) Reads all or part of the content from a binary file.
Array readFile(file, size) Reads all or part of the content from a binary file.
Array readFile(file) Reads all or part of the content from a binary file.
Array readFile(file, size) Reads all or part of the content from a binary file.
String readTXTFile() Read all content from a text file.
String readTXTFile(file) Read all content from a text file.
String readTXTFile(file, charsetname) Read all content from a text file.
String readTXTFile(file) Read all content from a text file.
String readTXTFile(file, charsetname) Read all content from a text file.
JSFile showDirectorySelectDialog() Shows a directory selector dialog.
JSFile showDirectorySelectDialog(directory) Shows a directory selector dialog.
JSFile showDirectorySelectDialog(directory, title) Shows a directory selector dialog.
JSFile showDirectorySelectDialog(directory) Shows a directory selector dialog.
JSFile showDirectorySelectDialog(directory, title) Shows a directory selector dialog.
Object showFileOpenDialog() Shows a file open dialog.
Object showFileOpenDialog(selectionMode) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction, title) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction, title) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, multiselect, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, startDirectory, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(selectionMode, callbackfunction) Shows a file open dialog.
Object showFileOpenDialog(callbackfunction) Shows a file open dialog.
JSFile showFileSaveDialog() Shows a file save dialog.
JSFile showFileSaveDialog(fileNameDir) Shows a file save dialog.
JSFile showFileSaveDialog(fileNameDir, title) Shows a file save dialog.
JSFile showFileSaveDialog(fileNameDir) Shows a file save dialog.
JSFile showFileSaveDialog(fileNameDir, title) Shows a file save dialog.
JSProgressMonitor streamFilesFromServer(files, serverFiles) Stream 1 or more files from the server to the client.
JSProgressMonitor streamFilesFromServer(files, serverFiles, callback) Stream 1 or more files from the server to the client, the callback method is invoked after every file, with as argument the filename that was transfered.
JSProgressMonitor streamFilesToServer(files) Overloaded method, only defines file(s) to be streamed
JSProgressMonitor streamFilesToServer(files, serverFiles) Overloaded method, defines file(s) to be streamed and a callback function
JSProgressMonitor streamFilesToServer(files, serverFiles, callback) Overloaded method, defines file(s) to be streamed, a callback function and file name(s) to use on the server
JSProgressMonitor streamFilesToServer(files, callback) Overloaded method, defines file(s) to be streamed and a callback function
void trackFileForDeletion(file) If the client's solution is closed, the file given to this method wil be deleted.
Boolean writeFile(file, data) Writes the given file to disk.
Boolean writeFile(file, data, mimeType) Writes the given file to disk.
Boolean writeFile(file, data) Writes the given file to disk.
Boolean writeFile(file, data, mimeType) Writes the given file to disk.
Boolean writeTXTFile(file, text_data) Writes data into a text file.
Boolean writeTXTFile(file, text_data, charsetname) Writes data into a text file.
Boolean writeTXTFile(file, text_data, charsetname, mimeType) Writes data into a text file.
Boolean writeTXTFile(file, text_data) Writes data into a text file.
Boolean writeTXTFile(file, text_data, charsetname) Writes data into a text file.
Boolean writeTXTFile(file, text_data, charsetname, mimeType) Writes data into a text file.
Boolean writeXMLFile(file, xml_data) Writes data into an XML file.
Boolean writeXMLFile(file, xml_data, encoding) Writes data into an XML file.
Boolean writeXMLFile(file, xml_data) Writes data into an XML file.
Boolean writeXMLFile(file, xml_data, encoding) Writes data into an XML file.

Methods Details

appendToTXTFile(file, text)

Appends a string given in parameter to a file, using default platform encoding.

Parameters

JSFile file a local JSFile
String text the text to append to the file

Returns

Boolean true if appending worked

Supported Clients

SmartClient,WebClient,NGClient

Sample

// append some text to a text file:
	var ok = plugins.file.appendToTXTFile('myTextFile.txt', '\nMy fantastic new line of text\n');

appendToTXTFile(file, text, encoding)

Appends a string given in parameter to a file, using the specified encoding.

Parameters

JSFile file a local JSFile
String text the text to append to the file
String encoding the encoding to use

Returns

Boolean true if appending worked

Supported Clients

SmartClient,WebClient,NGClient

Sample

// append some text to a text file:
	var ok = plugins.file.appendToTXTFile('myTextFile.txt', '\nMy fantastic new line of text\n');

appendToTXTFile(file, text)

Appends a string given in parameter to a file, using default platform encoding.

Parameters

String file the file path as a String
String text the text to append to the file

Returns

Boolean true if appending worked

Supported Clients

SmartClient,WebClient,NGClient

Sample

// append some text to a text file:
	var ok = plugins.file.appendToTXTFile('myTextFile.txt', '\nMy fantastic new line of text\n');

appendToTXTFile(file, text, encoding)

Appends a string given in parameter to a file, using the specified encoding.

Parameters

String file the file path as a String
String text the text to append to the file
String encoding the encoding to use

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// append some text to a text file:
	var ok = plugins.file.appendToTXTFile('myTextFile.txt', '\nMy fantastic new line of text\n');

convertToJSFile(file)

Returns a JSFile instance corresponding to an alternative representation of a file (for example a string).

Parameters

Object file ;

Returns

JSFile JSFile

Supported Clients

SmartClient,WebClient,NGClient

Sample

var f = plugins.file.convertToJSFile("story.txt");
if (f.canRead())
	application.output("File can be read.");

convertToRemoteJSFile(path)

Convenience return to get a JSFile representation of a server file based on its path.

Parameters

String path the path representing a file on the server (should start with "/")

Returns

JSFile the JSFile

Supported Clients

SmartClient,WebClient,NGClient

Sample

var f = plugins.file.convertToRemoteJSFile('/story.txt');
if (f && f.canRead())
	application.output('File can be read.');

copyFile(source, destination)

Copies the source file to the destination file. Returns true if the copy succeeds, false if any error occurs.

Parameters

Object source ;
Object destination ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Copy based on file names.
if (!plugins.file.copyFile("story.txt", "story.txt.copy"))
	application.output("Copy failed.");
// Copy based on JSFile instances.
var f = plugins.file.createFile("story.txt");
var fcopy = plugins.file.createFile("story.txt.copy2");
if (!plugins.file.copyFile(f, fcopy))
	application.output("Copy failed.");

copyFolder(source, destination)

Copies the sourcefolder to the destination folder, recursively. Returns true if the copy succeeds, false if any error occurs.

Parameters

Object source ;
Object destination ;

Returns

Boolean success boolean

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Copy folder based on names.
if (!plugins.file.copyFolder("stories", "stories_copy"))
	application.output("Folder copy failed.");
// Copy folder based on JSFile instances.
var d = plugins.file.createFile("stories");
var dcopy = plugins.file.createFile("stories_copy_2");
if (!plugins.file.copyFolder(d, dcopy))
	application.output("Folder copy failed.");

createFile(targetFile)

Creates a JSFile instance. Does not create the file on disk.

Parameters

Object targetFile ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Create the JSFile instance based on the file name.
var f = plugins.file.createFile("newfile.txt");
// Create the file on disk.
if (!f.createNewFile())
	application.output("The file could not be created.");

createFolder(destination)

Creates a folder on disk. Returns true if the folder is successfully created, false if any error occurs.

Parameters

Object destination ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var d = plugins.file.convertToJSFile("newfolder");
if (!plugins.file.createFolder(d))
	application.output("Folder could not be created.");

createTempFile(prefix, suffix)

Creates a temporary file on disk. A prefix and an extension are specified and they will be part of the file name.

Parameters

String prefix ;
String suffix ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var tempFile = plugins.file.createTempFile('myfile','.txt');
application.output('Temporary file created as: ' + tempFile.getAbsolutePath());
plugins.file.writeTXTFile(tempFile, 'abcdefg');

deleteFile(destination)

Removes a file from disk. Returns true on success, false otherwise.

Parameters

Object destination ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

if (plugins.file.deleteFile('story.txt'))
	application.output('File deleted.');

//In case the file to delete is a remote file:
var file = plugins.file.convertToRemoteJSFile('/story.txt');
plugins.file.deleteFile(file);

deleteFolder(destination, showWarning)

Deletes a folder from disk recursively. Returns true on success, false otherwise. If the second parameter is set to true, then a warning will be issued to the user before actually removing the folder.

Parameters

Object destination ;
Boolean showWarning ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

if (plugins.file.deleteFolder('stories', true))
	application.output('Folder deleted.');

//In case the file to delete is a remote folder:
plugins.file.deleteFolder(plugins.file.convertToRemoteJSFile('/stories'), true);

getDefaultUploadLocation()

Returns the default upload location path of the server.

Returns

String the location as canonical path

Supported Clients

SmartClient,WebClient,NGClient

Sample

// get the (server-side) default upload location path:
var serverPath = plugins.file.getDefaultUploadLocation();

getDesktopFolder()

Returns a JSFile instance that corresponds to the Desktop folder of the currently logged in user.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var d = plugins.file.getDesktopFolder();
application.output('desktop folder is: ' + d.getAbsolutePath());

getDiskList()

Returns an Array of JSFile instances correponding to the file system root folders.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var roots = plugins.file.getDiskList();
for (var i = 0; i < roots.length; i++)
	application.output(roots[i].getAbsolutePath());

getFileSize(fileOrPath)

Returns the size of the specified file.

Parameters

Object fileOrPath can be a (remote) JSFile or a local file path

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var f = plugins.file.convertToJSFile('story.txt');
application.output('file size: ' + plugins.file.getFileSize(f));

//In case the file is remote, located on the server side inside the default upload folder:
var f = plugins.file.convertToRemoteJSFile('/story.txt');
application.output('file size: ' + plugins.file.getFileSize(f));

getFolderContents(targetFolder)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder JSFile object.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder JSFile object.
Object fileFilter Filter or array of filters for files in folder.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption, visibleOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible
Number lockedOption 1=locked, 2=nonlocked

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder File path.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder File path.
Object fileFilter Filter or array of filters for files in folder.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder File path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption, visibleOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder File path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption)

Returns an array of JSFile instances corresponding to content of the specified folder. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder File path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible
Number lockedOption 1=locked, 2=nonlocked

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var files = plugins.file.getFolderContents('stories', '.txt');
for (var i=0; i<files.length; i++)
	application.output(files[i].getAbsolutePath());

getHomeFolder()

Returns a JSFile instance corresponding to the home folder of the logged in used.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var d = plugins.file.getHomeFolder();
application.output('home folder: ' + d.getAbsolutePath());

getModificationDate(fileOrPath)

Returns the modification date of a file.

Parameters

Object fileOrPath can be a (remote) JSFile or a local file path

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var f = plugins.file.convertToJSFile('story.txt');
application.output('last changed: ' + plugins.file.getModificationDate(f));

//In case the file is remote, located on the server side inside the default upload folder:
var f = plugins.file.convertToRemoteJSFile('/story.txt');
application.output('file size: ' + plugins.file.getModificationDate(f));

getRemoteFolderContents(targetFolder)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder ;

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents(plugins.file.convertToRemoteJSFile('/'), '.txt');

getRemoteFolderContents(targetFolder, fileFilter)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder Folder as JSFile object.
Object fileFilter Filter or array of filters for files in folder.

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents(plugins.file.convertToRemoteJSFile('/'), '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder Folder as JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents(plugins.file.convertToRemoteJSFile('/'), '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder Folder as JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents(plugins.file.convertToRemoteJSFile('/'), '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

JSFile targetFolder Folder as JSFile object.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible
Number lockedOption 1=locked, 2=nonlocked

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents(plugins.file.convertToRemoteJSFile('/'), '.txt');

getRemoteFolderContents(targetFolder)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder ;

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents('/', '.txt');

getRemoteFolderContents(targetFolder, fileFilter)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder Folder path.
Object fileFilter Filter or array of filters for files in folder.

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents('/', '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder Folder path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents('/', '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder Folder path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents('/', '.txt');

getRemoteFolderContents(targetFolder, fileFilter, fileOption, visibleOption, lockedOption)

Returns an array of JSFile instances corresponding to content of the specified folder on the server side. The content can be filtered by optional name filter(s), by type, by visibility and by lock status.

Parameters

String targetFolder Folder path.
Object fileFilter Filter or array of filters for files in folder.
Number fileOption 1=files, 2=dirs
Number visibleOption 1=visible, 2=nonvisible
Number lockedOption 1=locked, 2=nonlocked

Returns

Array the array of file names

Supported Clients

SmartClient,WebClient,NGClient

Sample

// retrieves an array of files located on the server side inside the default upload folder:
var files = plugins.file.getRemoteFolderContents('/', '.txt');

getUrlForRemoteFile(file)

Get a url from a remote file that can be used to download the file in a browser.
This is a complete url with the server url that is get from application.getServerURL()

Parameters

JSFile file the remote file where the url should be generated from. Must be a remote file

Returns

String the url as a string

Supported Clients

SmartClient,WebClient,NGClient

Sample

var file = plugins.file.convertToRemoteJSFile("aremotefile.pdf");
var url = plugins.file.getUrlForRemoteFile(file);
application.showURL(url);

getUrlForRemoteFile(file)

Get a url from a remote file that can be used to download the file in a browser.
This is a complete url with the server url that is get from application.getServerURL()

Parameters

String file the remote file where the url should be generated from. Must be a remote file

Returns

String the url as a string

Supported Clients

SmartClient,WebClient,NGClient

Sample

var file = plugins.file.convertToRemoteJSFile("aremotefile.pdf");
var url = plugins.file.getUrlForRemoteFile(file);
application.showURL(url);

moveFile(source, destination)

Moves the file from the source to the destination place. Returns true on success, false otherwise.

Parameters

Object source ;
Object destination ;

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Move file based on names.
if (!plugins.file.moveFile('story.txt','story.txt.new'))
	application.output('File move failed.');
// Move file based on JSFile instances.
var f = plugins.file.convertToJSFile('story.txt.new');
var fmoved = plugins.file.convertToJSFile('story.txt');
if (!plugins.file.moveFile(f, fmoved))
	application.output('File move back failed.');

openFile(file)

Opens the given local file.

Smart Client: launches the default OS associated application to open an existing local file.
Web Client: the (server local) file will open inside the browser - if supported (sent using "Content-disposition: inline" HTTP header).

Parameters

JSFile file the local file to open. The file should exist and be accessible.

Returns

Boolean success status of the open operation

Supported Clients

SmartClient,WebClient,NGClient

Sample

var myPDF = plugins.file.createFile('my.pdf');
 myPDF.setBytes(data, true)
	plugins.file.openFile(myPDF);

openFile(file, webClientTarget, webClientTargetOptions)

Opens the given local file.

Smart Client: launches the default OS associated application to open an existing local file.
Web Client: the (server local) file will open inside the browser - if supported (sent using "Content-disposition: inline" HTTP header).

Parameters

JSFile file the local file to open. The file should exist and be accessible.
String webClientTarget Target frame or named dialog/window. For example "_self" to open in the same browser window, "_blank" for another browser window. By default "_blank" is used.
String webClientTargetOptions window options used when a new browser window is to be shown; see browser JS 'window.open(...)' documentation.

Returns

Boolean success status of the open operation

Supported Clients

SmartClient,WebClient,NGClient

Sample

var myPDF = plugins.file.createFile('my.pdf');
 myPDF.setBytes(data, true)
	plugins.file.openFile(myPDF, "_self", null); // show in the same browser window

openFile(fileName, data, mimeType)

Opens the given data as a file.

Smart Client: writes the data to a temporary file, then launches the default OS associated application to open it.
Web Client: the data will open as a file inside the browser - if supported (sent using "Content-disposition: inline" HTTP header).

Parameters

String fileName the name of the file that should open with the given data. Can be null (but in Smart Client null - so no extension - will probably make open fail).
Array data the file's binary content.
String mimeType can be left null, and is used for webclient only. Specify one of any valid mime types: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types http://www.iana.org/assignments/media-types/media-types.xhtml http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7

Returns

Boolean success status of the open operation

Supported Clients

SmartClient,WebClient,NGClient

Sample

// read or generate pdf file bytes
var bytes = plugins.file.readFile("c:/ExportedPdfs/13542.pdf");

// mimeType variable can be left null
var mimeType = 'application/pdf'

if (!plugins.file.openFile("MonthlyStatistics.pdf", bytes, mimeType))
	application.output('Failed to open the file.');

openFile(fileName, data, mimeType, webClientTarget, webClientTargetOptions)

Opens the given data as a file.

Smart Client: writes the data to a temporary file, then launches the default OS associated application to open it.
Web Client: the data will open as a file inside the browser - if supported (sent using "Content-disposition: inline" HTTP header).

Parameters

String fileName the name of the file that should open with the given data. Can be null (but in Smart Client null - so no extension - will probably make open fail).
Array data the file's binary content.
String mimeType can be left null, and is used for webclient only. Specify one of any valid mime types: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types http://www.iana.org/assignments/media-types/media-types.xhtml http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
String webClientTarget Target frame or named dialog/window. For example "_self" to open in the same browser window, "_blank" for another browser window. By default "_blank" is used.
String webClientTargetOptions window options used when a new browser window is to be shown; see browser JS 'window.open(...)' documentation.

Returns

Boolean success status of the open operation

Supported Clients

SmartClient,WebClient,NGClient

Sample

// read or generate pdf file bytes
var bytes = plugins.file.readFile("c:/ExportedPdfs/13542.pdf");

// mimeType variable can be left null
var mimeType = 'application/pdf'

if (!plugins.file.openFile("MonthlyStatistics.pdf", bytes, mimeType, "_self", null))
	application.output('Failed to open the file.');

readFile()

Reads all or part of the content from a binary file. If a file name is not specified, then a file selection dialog pops up for selecting a file. (Web Enabled only for a JSFile argument)

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read all content from the file.
var bytes = plugins.file.readFile('big.jpg');
application.output('file size: ' + bytes.length);
// Read only the first 1KB from the file.
var bytesPartial = plugins.file.readFile('big.jpg', 1024);
application.output('partial file size: ' + bytesPartial.length);
// Read all content from a file selected from the file open dialog.
var bytesUnknownFile = plugins.file.readFile();
application.output('unknown file size: ' + bytesUnknownFile.length);

readFile(file)

Reads all or part of the content from a binary file. If a file name is not specified, then a file selection dialog pops up for selecting a file. (Web Enabled only for a JSFile argument)

Parameters

JSFile file JSFile.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read all content from the file.
var bytes = plugins.file.readFile('big.jpg');
application.output('file size: ' + bytes.length);
// Read only the first 1KB from the file.
var bytesPartial = plugins.file.readFile('big.jpg', 1024);
application.output('partial file size: ' + bytesPartial.length);
// Read all content from a file selected from the file open dialog.
var bytesUnknownFile = plugins.file.readFile();
application.output('unknown file size: ' + bytesUnknownFile.length);

readFile(file, size)

Reads all or part of the content from a binary file. If a file name is not specified, then a file selection dialog pops up for selecting a file. (Web Enabled only for a JSFile argument)

Parameters

JSFile file JSFile.
Number size Number of bytes to read.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read all content from the file.
var bytes = plugins.file.readFile('big.jpg');
application.output('file size: ' + bytes.length);
// Read only the first 1KB from the file.
var bytesPartial = plugins.file.readFile('big.jpg', 1024);
application.output('partial file size: ' + bytesPartial.length);
// Read all content from a file selected from the file open dialog.
var bytesUnknownFile = plugins.file.readFile();
application.output('unknown file size: ' + bytesUnknownFile.length);

readFile(file)

Reads all or part of the content from a binary file. If a file name is not specified, then a file selection dialog pops up for selecting a file. (Web Enabled only for a JSFile argument)

Parameters

String file the file path.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read all content from the file.
var bytes = plugins.file.readFile('big.jpg');
application.output('file size: ' + bytes.length);
// Read only the first 1KB from the file.
var bytesPartial = plugins.file.readFile('big.jpg', 1024);
application.output('partial file size: ' + bytesPartial.length);
// Read all content from a file selected from the file open dialog.
var bytesUnknownFile = plugins.file.readFile();
application.output('unknown file size: ' + bytesUnknownFile.length);

readFile(file, size)

Reads all or part of the content from a binary file. If a file name is not specified, then a file selection dialog pops up for selecting a file. (Web Enabled only for a JSFile argument)

Parameters

String file the file path.
Number size Number of bytes to read.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read all content from the file.
var bytes = plugins.file.readFile('big.jpg');
application.output('file size: ' + bytes.length);
// Read only the first 1KB from the file.
var bytesPartial = plugins.file.readFile('big.jpg', 1024);
application.output('partial file size: ' + bytesPartial.length);
// Read all content from a file selected from the file open dialog.
var bytesUnknownFile = plugins.file.readFile();
application.output('unknown file size: ' + bytesUnknownFile.length);

readTXTFile()

Read all content from a text file. If a file name is not specified, then a file selection dialog pops up for selecting a file. The encoding can be also specified. (Web Enabled only for a JSFile argument)

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read content from a known text file.
var txt = plugins.file.readTXTFile('story.txt');
application.output(txt);
// Read content from a text file selected from the file open dialog.
var txtUnknown = plugins.file.readTXTFile();
application.output(txtUnknown);

readTXTFile(file)

Read all content from a text file. If a file name is not specified, then a file selection dialog pops up for selecting a file. The encoding can be also specified. (Web Enabled only for a JSFile argument)

Parameters

JSFile file JSFile.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read content from a known text file.
var txt = plugins.file.readTXTFile('story.txt');
application.output(txt);
// Read content from a text file selected from the file open dialog.
var txtUnknown = plugins.file.readTXTFile();
application.output(txtUnknown);

readTXTFile(file, charsetname)

Read all content from a text file. If a file name is not specified, then a file selection dialog pops up for selecting a file. The encoding can be also specified. (Web Enabled only for a JSFile argument)

Parameters

JSFile file JSFile.
String charsetname Charset name.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read content from a known text file.
var txt = plugins.file.readTXTFile('story.txt');
application.output(txt);
// Read content from a text file selected from the file open dialog.
var txtUnknown = plugins.file.readTXTFile();
application.output(txtUnknown);

readTXTFile(file)

Read all content from a text file. If a file name is not specified, then a file selection dialog pops up for selecting a file. The encoding can be also specified. (Web Enabled only for a JSFile argument)

Parameters

String file the file path.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read content from a known text file.
var txt = plugins.file.readTXTFile('story.txt');
application.output(txt);
// Read content from a text file selected from the file open dialog.
var txtUnknown = plugins.file.readTXTFile();
application.output(txtUnknown);

readTXTFile(file, charsetname)

Read all content from a text file. If a file name is not specified, then a file selection dialog pops up for selecting a file. The encoding can be also specified. (Web Enabled only for a JSFile argument)

Parameters

String file the file path.
String charsetname Charset name.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// Read content from a known text file.
var txt = plugins.file.readTXTFile('story.txt');
application.output(txt);
// Read content from a text file selected from the file open dialog.
var txtUnknown = plugins.file.readTXTFile();
application.output(txtUnknown);

showDirectorySelectDialog()

Shows a directory selector dialog.

Returns

Supported Clients

SmartClient

Sample

var dir = plugins.file.showDirectorySelectDialog();
application.output("you've selected folder: " + dir.getAbsolutePath());

showDirectorySelectDialog(directory)

Shows a directory selector dialog.

Parameters

JSFile directory Default directory as JSFile.

Returns

Supported Clients

SmartClient

Sample

var dir = plugins.file.showDirectorySelectDialog();
application.output("you've selected folder: " + dir.getAbsolutePath());

showDirectorySelectDialog(directory, title)

Shows a directory selector dialog.

Parameters

JSFile directory Default directory as JSFile.
String title Dialog title.

Returns

Supported Clients

SmartClient

Sample

var dir = plugins.file.showDirectorySelectDialog();
application.output("you've selected folder: " + dir.getAbsolutePath());

showDirectorySelectDialog(directory)

Shows a directory selector dialog.

Parameters

String directory Default directory as file path.

Returns

Supported Clients

SmartClient

Sample

var dir = plugins.file.showDirectorySelectDialog();
application.output("you've selected folder: " + dir.getAbsolutePath());

showDirectorySelectDialog(directory, title)

Shows a directory selector dialog.

Parameters

String directory Default directory as file path.
String title Dialog title.

Returns

Supported Clients

SmartClient

Sample

var dir = plugins.file.showDirectorySelectDialog();
application.output("you've selected folder: " + dir.getAbsolutePath());

showFileOpenDialog()

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder; null=default/previous

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder, null=default/previous
Boolean multiselect true/false

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder,null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder,null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction, title)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder, null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument
String title The tile of the dialog

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder,null=default/previous
Boolean multiselect true/false
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
JSFile startDirectory JSFile instance of default folder,null=default/previous
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder; null=default/previous

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder, null=default/previous
Boolean multiselect true/false

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder,null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.

Returns

Supported Clients

SmartClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder,null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, filter, callbackfunction, title)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder, null=default/previous
Boolean multiselect true/false
Object filter A filter or array of filters on the folder files.
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument
String title The tile of the dialog

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, multiselect, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder,null=default/previous
Boolean multiselect true/false
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, startDirectory, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
String startDirectory Path to default folder,null=default/previous
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(selectionMode, callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Number selectionMode 0=both,1=Files,2=Dirs
Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileOpenDialog(callbackfunction)

Shows a file open dialog. Filters can be applied on what type of files can be selected. (Web Enabled, you must set the callback method for this to work)

Parameters

Function callbackfunction A function that takes the (JSFile) array of the selected files as first argument

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

// This selects only files ('1'), previous dir must be used ('null'), no multiselect ('false') and
// the filter "JPG and GIF" should be used: ('new Array("JPG and GIF","jpg","gif")').
/** @type {JSFile} */
var f = plugins.file.showFileOpenDialog(1, null, false, new Array("JPG and GIF", "jpg", "gif"));
application.output('File: ' + f.getName());
application.output('is dir: ' + f.isDirectory());
application.output('is file: ' + f.isFile());
application.output('path: ' + f.getAbsolutePath());

// This allows mutliple selection of files, using previous dir and the same filter as above. This also casts the result to the JSFile type using JSDoc.
// if filters are specified, "all file" filter will not show up unless "*" filter is present
/** @type {JSFile[]} */
var files = plugins.file.showFileOpenDialog(1, null, true, new Array("JPG and GIF", "jpg", "gif", "*"));
for (var i = 0; i < files.length; i++)
{
	 application.output('File: ' + files[i].getName());
	 application.output('content type: ' + files[i].getContentType());
	 application.output('last modified: ' + files[i].lastModified());
	 application.output('size: ' + files[i].size());
}
//for the web and NG you have to give a callback function that has a JSFile array as its first argument (also works in smart), only multi select and the title are used in the webclient, others are ignored
plugins.file.showFileOpenDialog(null,null,false,new Array("JPG and GIF", "jpg", "gif"),mycallbackfunction,'Select some nice files')

When handling big files please look at the admin page properties: "servoy.ng_web_client.tempfile.threshold" and "servoy.ng_web_client.temp.uploadir", so that big files are mapped to temp files and saved to a good temp dir
so that in the callback method you can try to rename the temp generated file to something on the filesystem with a specific name. This way there is no need to stream anything again on the server side
(or access the bytes which will load the big file completely in memory)

showFileSaveDialog()

Shows a file save dialog. File save is only supported in the SmartClient.

Returns

Supported Clients

SmartClient

Sample

var file = plugins.file.showFileSaveDialog();
application.output("you've selected file: " + file.getAbsolutePath());

showFileSaveDialog(fileNameDir)

Shows a file save dialog. File save is only supported in the SmartClient.

Parameters

JSFile fileNameDir JSFile to save.

Returns

Supported Clients

SmartClient

Sample

var file = plugins.file.showFileSaveDialog();
application.output("you've selected file: " + file.getAbsolutePath());

showFileSaveDialog(fileNameDir, title)

Shows a file save dialog. File save is only supported in the SmartClient.

Parameters

JSFile fileNameDir JSFile to save
String title Dialog title.

Returns

Supported Clients

SmartClient

Sample

var file = plugins.file.showFileSaveDialog();
application.output("you've selected file: " + file.getAbsolutePath());

showFileSaveDialog(fileNameDir)

Shows a file save dialog. File save is only supported in the SmartClient.

Parameters

String fileNameDir File (give as file path) to save.

Returns

Supported Clients

SmartClient

Sample

var file = plugins.file.showFileSaveDialog();
application.output("you've selected file: " + file.getAbsolutePath());

showFileSaveDialog(fileNameDir, title)

Shows a file save dialog. File save is only supported in the SmartClient.

Parameters

String fileNameDir File to save (specified as file path)
String title Dialog title.

Returns

Supported Clients

SmartClient

Sample

var file = plugins.file.showFileSaveDialog();
application.output("you've selected file: " + file.getAbsolutePath());

streamFilesFromServer(files, serverFiles)

Stream 1 or more files from the server to the client.

Parameters

Object files file(s) to be streamed into (can be a String path a JSFile) or an Array of these
Object serverFiles the files on the server that will be transfered to the client, can be a String or a String[]

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// transfer all the files of a chosen server folder to a directory on the client
var dir = plugins.file.showDirectorySelectDialog();
if (dir) {
	var list = plugins.file.getRemoteFolderContents('/images/user1/', null, 1);
	if (list) {
		var monitor = plugins.file.streamFilesFromServer(dir, list, callbackFunction);
	}
}

// transfer one file on the client
var monitor = plugins.file.streamFilesFromServer('/path/to/file', 'path/to/serverFile', callbackFunction);

// transfer an array of serverFiles to an array of files on the client
var files = new Array();
files[0] = '/path/to/file1';
files[1] = '/path/to/file2';
var serverFiles = new Array();
serverFiles[0] = '/path/to/serverFile1';
serverFiles[1] = '/path/to/serverFile2';
var monitor = plugins.file.streamFilesFromServer(files, serverFiles, callbackFunction);

streamFilesFromServer(files, serverFiles, callback)

Stream 1 or more files from the server to the client, the callback method is invoked after every file, with as argument
the filename that was transfered. An extra second exception parameter can be given if an exception did occur.

Parameters

Object files file(s) to be streamed into (can be a String path or a JSFile) or an Array of these
Object serverFiles the files on the server that will be transfered to the client, can be a JSFile or JSFile[], a String or String[]
Function callback the Function to be called back at the end of the process (for every file); the callback function is invoked with argument the filename that was transfered; an extra second exception parameter can be given if an exception occured

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// transfer all the files of a chosen server folder to a directory on the client
var dir = plugins.file.showDirectorySelectDialog();
if (dir) {
	var list = plugins.file.getRemoteFolderContents('/images/user1/', null, 1);
	if (list) {
		var monitor = plugins.file.streamFilesFromServer(dir, list, callbackFunction);
	}
}

// transfer one file on the client
var monitor = plugins.file.streamFilesFromServer('/path/to/file', 'path/to/serverFile', callbackFunction);

// transfer an array of serverFiles to an array of files on the client
var files = new Array();
files[0] = '/path/to/file1';
files[1] = '/path/to/file2';
var serverFiles = new Array();
serverFiles[0] = '/path/to/serverFile1';
serverFiles[1] = '/path/to/serverFile2';
var monitor = plugins.file.streamFilesFromServer(files, serverFiles, callbackFunction);

streamFilesToServer(files)

Overloaded method, only defines file(s) to be streamed

Parameters

Object files file(s) to be streamed (can be a String path or a JSFile) or an Array of these

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// send one file:
var file = plugins.file.showFileOpenDialog( 1, null, false, null, null, 'Choose a file to transfer' );
if (file) {
	plugins.file.streamFilesToServer( file, callbackFunction );
}
//plugins.file.streamFilesToServer( 'servoy.txt', callbackFunction );

// send an array of files:
var folder = plugins.file.showDirectorySelectDialog();
if (folder) {
	var files = plugins.file.getFolderContents(folder);
	if (files) {
		var monitor = plugins.file.streamFilesToServer( files, callbackFunction );
	}
}
// var files = new Array()
// files[0] = 'file1.txt';
// files[1] = 'file2.txt';
// var monitor = plugins.file.streamFilesToServer( files, callbackFunction );

streamFilesToServer(files, serverFiles)

Overloaded method, defines file(s) to be streamed and a callback function

Parameters

Object files file(s) to be streamed (can be a String path or a JSFile) or an Array of these
Object serverFiles can be a JSFile or JSFile[], a String or String[], representing the file name(s) to use on the server

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// send one file:
var file = plugins.file.showFileOpenDialog( 1, null, false, null, null, 'Choose a file to transfer' );
if (file) {
	plugins.file.streamFilesToServer( file, callbackFunction );
}
//plugins.file.streamFilesToServer( 'servoy.txt', callbackFunction );

// send an array of files:
var folder = plugins.file.showDirectorySelectDialog();
if (folder) {
	var files = plugins.file.getFolderContents(folder);
	if (files) {
		var monitor = plugins.file.streamFilesToServer( files, callbackFunction );
	}
}
// var files = new Array()
// files[0] = 'file1.txt';
// files[1] = 'file2.txt';
// var monitor = plugins.file.streamFilesToServer( files, callbackFunction );

streamFilesToServer(files, serverFiles, callback)

Overloaded method, defines file(s) to be streamed, a callback function and file name(s) to use on the server

Parameters

Object files file(s) to be streamed (can be a String path or a JSFile) or an Array of these)
Object serverFiles can be a JSFile or JSFile[], a String or String[], representing the file name(s) to use on the server
Function callback the Function to be called back at the end of the process (for every file); the callback function is invoked with argument the filename that was transfered; an extra second exception parameter can be given if an exception occured

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// send one file:
var file = plugins.file.showFileOpenDialog( 1, null, false, null, null, 'Choose a file to transfer' );
if (file) {
	plugins.file.streamFilesToServer( file, callbackFunction );
}
//plugins.file.streamFilesToServer( 'servoy.txt', callbackFunction );

// send an array of files:
var folder = plugins.file.showDirectorySelectDialog();
if (folder) {
	var files = plugins.file.getFolderContents(folder);
	if (files) {
		var monitor = plugins.file.streamFilesToServer( files, callbackFunction );
	}
}
// var files = new Array()
// files[0] = 'file1.txt';
// files[1] = 'file2.txt';
// var monitor = plugins.file.streamFilesToServer( files, callbackFunction );

streamFilesToServer(files, callback)

Overloaded method, defines file(s) to be streamed and a callback function

Parameters

Object files file(s) to be streamed (can be a String path or a JSFile) or an Array of these
Function callback the Function to be called back at the end of the process (for every file); the callback function is invoked with argument the filename that was transfered; an extra second exception parameter can be given if an exception occured

Returns

JSProgressMonitor a JSProgressMonitor object to allow client to subscribe to progress notifications

Supported Clients

SmartClient,WebClient,NGClient

Sample

// send one file:
var file = plugins.file.showFileOpenDialog( 1, null, false, null, null, 'Choose a file to transfer' );
if (file) {
	plugins.file.streamFilesToServer( file, callbackFunction );
}
//plugins.file.streamFilesToServer( 'servoy.txt', callbackFunction );

// send an array of files:
var folder = plugins.file.showDirectorySelectDialog();
if (folder) {
	var files = plugins.file.getFolderContents(folder);
	if (files) {
		var monitor = plugins.file.streamFilesToServer( files, callbackFunction );
	}
}
// var files = new Array()
// files[0] = 'file1.txt';
// files[1] = 'file2.txt';
// var monitor = plugins.file.streamFilesToServer( files, callbackFunction );

trackFileForDeletion(file)

If the client's solution is closed, the file given to this method wil be deleted.
This can be a remote or local file.

This can be used to have temp files within a client that will be cleaned up when the solution is closed.
So they live as long as the client has its solution open.

Parameters

JSFile file the file to track

Supported Clients

SmartClient,WebClient,NGClient

Sample

var file = plugins.file.createFile("newfile.txt");
plugins.file.writeTXTFile(file, "some data");
plugins.file.trackFileForDeletionfile(file);

writeFile(file, data)

Writes the given file to disk.

If "file" is a JSFile or you are running in Smart Client, it writes data into a (local) binary file.

If you are running in Web Client and "file" is a String (like 'mypdffile.pdf' to hint the browser what it is) the user will get
prompted by the browser to save the file (sent using "Content-disposition: attachment" HTTP header). If it is a JSFile instance
in this case it will be saved as a file on the server.

Parameters

JSFile file a local JSFile
Array data the data to be written

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

/**@type {Array<byte>}*/
var bytes = new Array();
for (var i=0; i<1024; i++)
	bytes[i] = i % 100;
var f = plugins.file.convertToJSFile('bin.dat');
if (!plugins.file.writeFile(f, bytes))
	application.output('Failed to write the file.');
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types
var mimeType = 'application/vnd.ms-excel'
if (!plugins.file.writeFile(f, bytes, mimeType))
	application.output('Failed to write the file.');

writeFile(file, data, mimeType)

Writes the given file to disk.

If "file" is a JSFile or you are running in Smart Client, it writes data into a (local) binary file.

If you are running in Web Client and "file" is a String (like 'mypdffile.pdf' to hint the browser what it is) the user will get
prompted by the browser to save the file (sent using "Content-disposition: attachment" HTTP header). If it is a JSFile instance
in this case it will be saved as a file on the server.

Parameters

JSFile file a local JSFile
Array data the data to be written
String mimeType the mime type (used in Web-Client)

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

/**@type {Array<byte>}*/
var bytes = new Array();
for (var i=0; i<1024; i++)
	bytes[i] = i % 100;
var f = plugins.file.convertToJSFile('bin.dat');
if (!plugins.file.writeFile(f, bytes))
	application.output('Failed to write the file.');
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types
var mimeType = 'application/vnd.ms-excel'
if (!plugins.file.writeFile(f, bytes, mimeType))
	application.output('Failed to write the file.');

writeFile(file, data)

Writes the given file to disk.

If "file" is a JSFile or you are running in Smart Client, it writes data into a (local) binary file.

If you are running in Web Client and "file" is a String (like 'mypdffile.pdf' to hint the browser what it is) the user will get
prompted by the browser to save the file (sent using "Content-disposition: attachment" HTTP header). If it is a JSFile instance
in this case it will be saved as a file on the server.

Parameters

String file the file path as a String
Array data the data to be written

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

/**@type {Array<byte>}*/
var bytes = new Array();
for (var i=0; i<1024; i++)
	bytes[i] = i % 100;
var f = plugins.file.convertToJSFile('bin.dat');
if (!plugins.file.writeFile(f, bytes))
	application.output('Failed to write the file.');
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types
var mimeType = 'application/vnd.ms-excel'
if (!plugins.file.writeFile(f, bytes, mimeType))
	application.output('Failed to write the file.');

writeFile(file, data, mimeType)

Writes the given file to disk.

If "file" is a JSFile or you are running in Smart Client, it writes data into a (local) binary file.

If you are running in Web Client and "file" is a String (like 'mypdffile.pdf' to hint the browser what it is) the user will get
prompted by the browser to save the file (sent using "Content-disposition: attachment" HTTP header). If it is a JSFile instance
in this case it will be saved as a file on the server.

Parameters

String file the file path as a String
Array data the data to be written
String mimeType the mime type (used in Web-Client)

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

/**@type {Array<byte>}*/
var bytes = new Array();
for (var i=0; i<1024; i++)
	bytes[i] = i % 100;
var f = plugins.file.convertToJSFile('bin.dat');
if (!plugins.file.writeFile(f, bytes))
	application.output('Failed to write the file.');
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types
var mimeType = 'application/vnd.ms-excel'
if (!plugins.file.writeFile(f, bytes, mimeType))
	application.output('Failed to write the file.');

writeTXTFile(file, text_data)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

JSFile file JSFile
String text_data Text to be written.

Returns

Boolean Success boolean.

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeTXTFile(file, text_data, charsetname)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

JSFile file JSFile
String text_data Text to be written.
String charsetname Charset name.

Returns

Boolean Success boolean.

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeTXTFile(file, text_data, charsetname, mimeType)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

JSFile file JSFile
String text_data Text to be written.
String charsetname Charset name.
String mimeType Content type (used only on web).

Returns

Boolean Success boolean.

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeTXTFile(file, text_data)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

String file The file path.
String text_data Text to be written.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeTXTFile(file, text_data, charsetname)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

String file The file path.
String text_data Text to be written.
String charsetname Charset name.

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeTXTFile(file, text_data, charsetname, mimeType)

Writes data into a text file. (Web Enabled: file parameter can be a string 'mytextfile.txt' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

String file The file path.
String text_data Text to be written.
String charsetname Charset name.
String mimeType Content type (used only on web).

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileNameSuggestion = 'myspecialexport.tab'
var textData = 'load of data...'
var success = plugins.file.writeTXTFile(fileNameSuggestion, textData);
if (!success) application.output('Could not write file.');
// For file-encoding parameter options (default OS encoding is used), http://download.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.html
// mimeType variable can be left null, and is used for webclient only. Specify one of any valid mime types as referenced here: http://www.w3schools.com/media/media_mimeref.asp'

writeXMLFile(file, xml_data)

Writes data into an XML file. The file is saved with the encoding specified by the XML itself. (Web Enabled: file parameter can be a string 'myxmlfile.xml' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

JSFile file a local JSFile
String xml_data the xml data to write

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileName = 'form.xml'
var xml = controller.printXML()
var success = plugins.file.writeXMLFile(fileName, xml);
if (!success) application.output('Could not write file.');

writeXMLFile(file, xml_data, encoding)

Writes data into an XML file. The file is saved with the encoding specified by the XML itself. (Web Enabled: file parameter can be a string 'myxmlfile.xml' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

JSFile file a local JSFile
String xml_data the xml data to write
String encoding the specified encoding

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileName = 'form.xml'
var xml = controller.printXML()
var success = plugins.file.writeXMLFile(fileName, xml);
if (!success) application.output('Could not write file.');

writeXMLFile(file, xml_data)

Writes data into an XML file. The file is saved with the encoding specified by the XML itself. (Web Enabled: file parameter can be a string 'myxmlfile.xml' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

String file the file path as a String
String xml_data the xml data to write

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileName = 'form.xml'
var xml = controller.printXML()
var success = plugins.file.writeXMLFile(fileName, xml);
if (!success) application.output('Could not write file.');

writeXMLFile(file, xml_data, encoding)

Writes data into an XML file. The file is saved with the encoding specified by the XML itself. (Web Enabled: file parameter can be a string 'myxmlfile.xml' to hint the browser what it is, if it is a JSFile instance it will be saved on the server)

Parameters

String file the file path as a String
String xml_data the xml data to write
String encoding the specified encoding

Returns

Supported Clients

SmartClient,WebClient,NGClient

Sample

var fileName = 'form.xml'
var xml = controller.printXML()
var success = plugins.file.writeXMLFile(fileName, xml);
if (!success) application.output('Could not write file.');

  • No labels