Banana.IO

The Banana.IO class is used to read and write to files.

Since: Banana Accounting 8.0.7, only in Banana Experimental

Introduction

The API Banana.IO and Banana.IO.LocalFile allow a script to read or write to files in a secure way. The script can only read or writes to files that are first selected by the user though the corresponding dialogs. The script has no direct access to files on the file system. After the script finished, the permissions to write or read files are canceled.

For example to write the result of a script to a file:

var fileName = Banana.IO.getSaveFileName("Select save file", "", "Text file (*.txt);;All files (*)")
if (fileName.length) {
   var file = Banana.IO.getLocalFile(fileName)
   file.codecName = "latin1";  // Default is UTF-8
   file.write("Text to save ...");
   if (!file.errorString) {
      Banana.IO.openPath(fileContent);
   } else {
      Banana.Ui.showInformation("Write error", file.errorString);
   }
} else {
   Banana.Ui.showInformation("Info", "no file selected");
}

To read the content of a file:

var fileName = Banana.IO.getOpenFileName("Select open file", "", "Text file (*.txt);;All files (*)")
if (fileName.length) {
   var file = Banana.IO.getLocalFile(fileName)
   file.codecName = "latin1";  // Default is UTF-8
   var fileContent = file.read();
   if (!file.errorString) {
      Banana.IO.openPath(fileContent);
   } else {
      Banana.Ui.showInformation("Read error", file.errorString);
   }
} else {
   Banana.Ui.showInformation("Info", "no file selected");
}

Methods

getOpenFileName(caption, path, filter)

The method getOpenFileName returns an existing file selected by the user. If the user presses Cancel, it returns an empty string. The file selected by the user is then allowed to be readen, but not written.

The parameter caption is the caption of the dialog.

The parameter path is path inclusive the file name to be selected. If the path is relative, the current open document path or the user's document path is used.

The parameter filter set the files types to be showed. If you want multiple filters, separate them with ';;', for example: "Text file (*.txt);;All files (*)".

var fileName = Banana.IO.getOpenFileName("Select file to read", "", "Text file (*.txt);;All files (*)")

Since: Banana Accounting 8.0.7, only in Banana Experimental

getSaveFileName(caption, path, filter)

The method getSaveFileName returns an existing file selected by the user. If the user presses Cancel, it returns an empty string. The file selected by the user is then allowed to be readen and written.

The parameter caption is the caption of the dialog.

The parameter path is path inclusive the file name to be selected. If the path is relative, the current open document path or the user's document path is used.

The parameter filter set the files types to be showed. If you want multiple filters, separate them with ';;', for example: "Text file (*.txt);;All files (*)".

var fileName = Banana.IO.getSaveFileName("Select file to write", "", "Text file(*.txt);;All files (*)")

Since: Banana Accounting 8.0.7, only in Banana Experimental

getLocalFile(path)

The method getLocalFile(path) return an object of type Banana.IO.LocalFile that represent the requested file. This method always return a valid Banana.IO.LocalFile object.

The parameter path to the file. 

Since: Banana Accounting 8.0.7, only in Banana Experimental

openUrl(path)

The method openUrl(path) open the file referred by path in the system default application.

The parameter path to the file. 

Since: Banana Accounting 8.0.7, only in Banana Experimental

openPath(path)

The method openPath(path) show the folder containing the file referred by path in the system file manager.

The parameter path to the file. 

Since: Banana Accounting 8.0.7, only in Banana Experimental

Banana.IO.LocalFile

The LocalFile class represent a file on the local file system. See Banana.IO for an example.

Since: Banana Accounting 8.0.7, only in Banana Experimental

Properties

codecName

The name of the codec to be used for reading or writing the file. Default is 'UTF-8'.

errorString

Read only. The string of the last occured error. If no error occured it is empty.

Methods

read()

Returns the content of the file. This function has no way of reporting errors. Returning an empty string can mean either that the file is empty, or that an error occurred. Check the content of the property errorString to see if an error occured.

write(text [, append])

Write text to the file. If append is set to true, text is appended to the file. Return true if the operation was succesfully, false otherwise.