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