voltmx.io.File Namespace
The voltmx.io.File namespace provides functions and properties for doing various operations related on files, such as copying them, renaming them , deleting them, and so on.
Overview
Your app can create a File
object to represent files in the device's file system and perform common operations on them. To create a new File
object , your app calls the voltmx.io.File
function. Alternatively, it can use the voltmx.io.FileSystem.getFile function to get an instance of a File
object.
var myfile = new voltmx.io.File("myfile.txt");
or
var myfile = voltmx.io.FileSystem.getFile("myfile.txt")
File Properties:Name | Description |
---|---|
name: [type: String, ReadOnly] | Name of the file or directory |
fullPath: [type: String, ReadOnly] | Full absolute path of the file or directory |
parent: [type:voltmx.io.File, ReadOnly] | Returns the parent directory of this file. This property may return nil or a File object which can neither Readable or Writable, especially in case of Folders which are not accessible by the given Application context |
readable: [type: Boolean, ReadOnly] | Returns true if this file is readable |
writable: [type: Boolean, ReadOnly] | Returns true if this file is writable |
modificationTime: [type:Number, ReadOnly] | Returns the last modification time of the file in UTC |
size: [type:Number, ReadOnly | Returns the size of a file in number of bytes. |
The following function is often used in conjunction with the RawBytes object to read data of type RawBytes.
Functions
The voltmx.io.File namespace contains these functions: To use the copyTo, moveTo, remove, rename, createFile, createDirectory, read, and write File APIs, your app needs runtime permission from the end-user (to perform any of the action correspondent to a file). If you call any API without obtaining the permission, platforms automatically pops up a system permission dialog box with "Allow" and "Deny" options, asking the end-user to grant permission. This is applicable only for the Android platform.
If the end-user taps the "Allow" option, platform proceeds to access the underlying OS API. If the end-user taps the "Deny" option, the PermissionError exception is thrown with the 2300 error code, that means permission is denied.
voltmx.io.File.copyTo
copyTo API copies a file to the given destination path.
Syntax
voltmx.io.File.copyTo(String path, String newName)
Input Parameters
Parameter | Description |
---|---|
Path | path to the destination directory. |
newName (optional) | New name of the file/directory. Defaults to current name if unspecified. |
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var copyToLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir1";
var newFile = new voltmx.io.File(origFileLoc).copyTo(copyToLoc, "NewNameForCopy.txt");
Return Values
VoltMX.io.File returns a handle to the File object pointing to the destination file, if successful. If failure, then returns null.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.createDirectory
The createDirectory API creates a directory on the file system represented by this file object.
Note:For Android below permissions are required in IRIS project setting -> Native-> Android Mobile/Tablet -> Tags (Child tag entries under < manifest > tag) depending on the target version
If target version is 33 and above below media permissions are required.- < uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
- < uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
- < uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
If target version is 34 and above below permission must be added along with other media permissions.- < uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
For more information about Android 14 behavioral change click here, also for understanding other media permissions please refer Android 13.
Syntax
voltmx.io.File.createDirectory()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var dirLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir1";
var myDir = new voltmx.io.File(dirLoc).createDirectory();
Return Values
Boolean – true if the creation of directory is successful. False if directory already exists or could not be created.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.createFile
The createFile API creates a file on the file system represented by this file object.
Syntax
voltmx.io.File.createFile()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var fileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFileToCopy.txt";
var myFile = new voltmx.io.File(fileLoc).createFile();
Return Values
Boolean – true if the creation of file is successful. False if file already exists or could not be created.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.exists
The exist API checks, if the file or directory exists on the file system represented by this file object.
Syntax
voltmx.io.File.exists()
Input Parameters
None
Example
var copiedFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR +
"myDir1" + constants.FILE_PATH_SEPARATOR +
"NewNameForCopy.txt";
if (new voltmx.io.File(copiedFileLoc).exists()) {
voltmx.print("copy of file was successful");
} else {
voltmx.print("copy of file failed");
}
Return Values
Boolean – true if the file or directory exists on file system.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.getFilesList
The getFilesList API returns voltmx.io.FileList object representing the files and directories available under this file object directory.
Note:For Android below permissions are required in IRIS project setting -> Native-> Android Mobile/Tablet -> Tags (Child tag entries under < manifest > tag) depending on the target version
If target version is 33 and above below media permissions are required.- < uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
- < uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
- < uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
If target version is 34 and above below permission must be added along with other media permissions.- < uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
For more information about Android 14 behavioral change click here, also for understanding other media permissions please refer Android 13.
Syntax
voltmx.io.File.getFilesList()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myDirLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir416";
var myDirName = new voltmx.io.File(myDirLoc);
var createDir = myDirName.createDirectory();
var fileListLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir416";
var filesList = new voltmx.io.File(fileListLoc).getFilesList();
if (filesList.length === 0) {
voltmx.print("getFilesList successful for zero files");
} else {
voltmx.print("getFilesList failed for zero files");
}
Return Values
voltmx.io.FileList – FileList object or null if this File is not identified as a directory.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.isDirectory
The isDirectory API checks, if this object represents a directory file on the file system.
Syntax
voltmx.io.File.isDirectory()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var dirLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir765";
var myDir = new voltmx.io.File(dirLoc);
try {
var isDirec = new voltmx.io.File(dirLoc).isDirectory();
if (isDirec) {
voltmx.print("isDirectory True for nonExistent Directory");
}
} catch (err) {
voltmx.print("isDirec doesn't work over nonExistent directory");
}
Return Values
Boolean – true, if this file object represents a directory, false otherwise.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.isFile
The isFile API checks, if this object represents a typical file on the file system but not a directory.
Syntax
voltmx.io.File.isFile()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFile244.txt";
var myFileName = new voltmx.io.File(myFileLoc);
try {
var isFileThere = new voltmx.io.File(myFileLoc).isFile();
if (isFileThere) {
voltmx.print("isFile true for nonExistent File");
} else {
voltmx.print("isFile false for nonExistent File");
}
} catch (err) {
voltmx.print("isFile doesn't work on non-existent files");
}
Return Values
Boolean – true if this file object represents a file, false otherwise.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.moveTo
The moveTo API moves a file to the given destination path.
Syntax
voltmx.io.File.moveTo(String path, String newname)
Input Parameters
Parameter | Description |
---|---|
Path | path to the destination directory. |
newName (optional) | New name of the file/directory. Defaults to current name, if unspecified. |
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var dirLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myDir25";
var myDir = new voltmx.io.File(dirLoc).createDirectory();
var fileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFileToMove25.txt";
var myFile = new voltmx.io.File(fileLoc).createFile();
var newFile = new voltmx.io.File(fileLoc).moveTo(mainLoc);
if (newFile !== null) {
voltmx.print("moving to same loc with same name was successful");
} else {
voltmx.print(" can't move to same loc with same name");
}
Return Values
VoltMX.io.File – returns a handle to File object pointing to destination file on success. Returns null on failure.
Exceptions
None
Platform Availability
Available to iOS, Android, and Windows platforms.
voltmx.io.File.read
The read API returns the voltmx.types.RawBytes of this file.
Syntax
voltmx.io.File.read()
Input Parameters
None
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFile313.txt";
var myFileName = new voltmx.io.File(myFileLoc);
try {
var reading = new voltmx.io.File(myFileLoc).read();
voltmx.print(reading);
if (reading === null) {
voltmx.print("null is coming from reading i.e can't be done");
} else {
voltmx.print("reading can be done on NonExistentFile");
}
} catch (err) {
voltmx.print("can't try read on nonExistent File causes Error");
}
Return Values
voltmx.types.RawBytes – rawbytes representing the content of the file.Returns null in case of non existent file.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
Note: RawBytes will hold a handle of File object that it represents. The file content is not actually loaded into memory.
voltmx.io.File.remove
The remove API deletes a file or a directory.
Note:For Android below permissions are required in IRIS project setting -> Native-> Android Mobile/Tablet -> Tags (Child tag entries under < manifest > tag) depending on the target version
If target version is 33 and above below media permissions are required.- < uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
- < uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
- < uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
If target version is 34 and above below permission must be added along with other media permissions.- < uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
For more information about Android 14 behavioral change click here, also for understanding other media permissions please refer Android 13.
Syntax
remove(boolean, deleteRecursive)
Input Parameters
Parameter | Description |
---|---|
boolean | By default, this is false.True - deletes the folder and all its content recursively.False - if the directory is empty it shall be removed. |
deleteRecursive (optional) | Ignored in case of a file. |
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFileToMove12.txt";
var myFile = new voltmx.io.File(myFileLoc);
myFile.createFile();
myFile.remove(true);
if (new voltmx.io.File(myFileLoc).exists()) {
voltmx.print("removing file failed");
} else {
voltmx.print("removing file was successful");
}
Return Values
None
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.rename
The rename API renames a file or a directory.
Note:For Android below permissions are required in IRIS project setting -> Native-> Android Mobile/Tablet -> Tags (Child tag entries under < manifest > tag) depending on the target version
If target version is 33 and above below media permissions are required.- < uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
- < uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
- < uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
If target version is 34 and above below permission must be added along with other media permissions.- < uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
For more information about Android 14 behavioral change click here, also for understanding other media permissions please refer Android 13.
Syntax
voltmx.io.File.rename(String newname)
Input Parameters
Parameter | Description |
---|---|
newname | new name for a file or a directory. |
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFileToReName7578.txt";
var myFile = new voltmx.io.File(myFileLoc).createFile();
var newFile = new voltmx.io.File(myFileLoc).rename("myFileToReName7577");
if (newFile) {
voltmx.print("renaming file with name successfull with extension");
} else {
voltmx.print("renaming file failed for name without Extension");
}
Return Values
Boolean – If successful, then boolean value is true,. Boolean value is false, if invalid file name or if the destination is a different directory than the current file.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.
voltmx.io.File.write
The write API writes the given content into the file.
Syntax
voltmx.io.File.write(rawbytes/string, append)
Input Parameters
Parameter | Description |
---|---|
Rawbytes/string | data to write of type text string or voltmx.types.RawBytes |
Append (optional) | true to append the data. Default is false, that means overrides the content. |
Example
var mainLoc = voltmx.io.FileSystem.getDataDirectoryPath();
var myFileLoc = mainLoc + constants.FILE_PATH_SEPARATOR + "myFile376.txt";
var myFileName = new voltmx.io.File(myFileLoc).createFile();
try {
var writing = new voltmx.io.File(myFileLoc).write("How are you?");
if (writing !== null) {
voltmx.print("writing can be done on Non Existing Files");
} else {
voltmx.print("writing on nonExisting file returns null");
}
} catch (err) {
voltmx.print("can't try write on NonExistingFile, causes Error");
}
Return Values
Boolean – true if success, false otherwise.
Exceptions
None
Platform Availability
Available for iOS, Android, and Windows platforms.