Creating and Writing File
Let start with an example to create and write a file:
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (dirEntry) {
console.log("got directory entry", dirEntry);
dirEntry.getFile("myFilename.txt", { create: true },
// getFile() success
function (fileEntry) {
console.log("got file entry", fileEntry);
fileEntry.createWriter(
// createWriter() success
function (fileWriter) {
fileWriter.onwriteend = function (e) {
console.log('write is successful');
. . .
};
fileWriter.onerror = function (e) {
console.log('write is failed', e);
. . .
};
var blob = new Blob(['. . . some text . . .'], { type: 'text/plain' });
fileWriter.write(blob);
},
// createWriter() error
function (error) {
. . .
}
);
},
// getFile() error
function (error) {
. . .
}
);
});
In the example above, we use resolveLocalFileSystemURL() function to get a directory or file entry from a directory/file system path (i.e. cordova.file.dataDirectory). resolveLocalFileSystemURL() has two parameters:
- the first parameter is a directory or file path
- the second one is the callback function to be executed once it succeed. A directory or file reference entry object is passed to the callback function.
Once we have hold of the file or directory entry object, we can do a number of operations such as creating, writing, reading, copying, moving, renaming or deleting the file. In this case, we want to create a new file and write into it. To do this, we need to call getFile() function first. The function has four parameters:
- the filename or file path
- function options (optional parameter). It has two properties with boolean values, namely; create and exclusive. create: true will create a file if it does not exist. To make the function throws an error if the file exists, set exclusive: true.
- on success callback function, passing a file reference entry object
- on error callback function (optional parameter), an error object is passed to the callback
Then after we get the file entry object, we call createWriter() function that will create a file writer object once successful. Next we call its write() function. The file writer object also has onwriteend() and onerror() callback functions.
Reading File
window.resolveLocalFileSystemURL(myFilePath, function (dirEntry) {
fileEntry.file(
// success
function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
console.log('file is read');
. . .
};
reader.readAsText(file);
},
// error
function (error) {
. . .
}
);
});
In the example, we see that after we get a file reference entry object, we use file() method in order to create a file object of the intended file to be passed to FileReader readAsText() function.Deleting File
window.resolveLocalFileSystemURL(myFilePath,
function (fileEntry) {
fileEntry.remove(
// success
function () {
console.log('file is removed');
. . .
},
// error
function (error) {
. . .
}
);
}
);
In this last example, we call file entry object's remove() function to delete a file.
No comments:
Post a Comment