Created
January 10, 2012 20:15
-
-
Save purdrew/1590941 to your computer and use it in GitHub Desktop.
Example of using the File API to create/remove a file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<meta name="viewport" id="viewport" content="width=device-width,height=device-height,initial-scale=1.0,user-scalable=no"> | |
<script src="json2.js" type="text/javascript"></script> | |
<script src="phonegap.js" type="text/javascript"></script> | |
<script type="text/javascript"> | |
// invoked when device is ready | |
function deviceInfo() { | |
document.getElementById('window.device.phonegap').innerHTML = 'window.device.phonegap = ' + window.device.phonegap; | |
} | |
// register PhoneGap event listeners when DOM content loaded | |
function init() { | |
console.log('init()'); | |
document.addEventListener("deviceready", deviceInfo, true); | |
} | |
// retrieves root file system entry | |
var getFileSystemRoot = (function() { | |
// private | |
var root; | |
// one-time retrieval of the root file system entry | |
var init = function() { | |
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, | |
function(fileSystem) { | |
root = fileSystem.root; | |
}, | |
onFileSystemError); | |
}; | |
document.addEventListener("deviceready", init, true); | |
// public function returns private root entry | |
return function() { | |
return root; | |
}; | |
}()); // execute immediately | |
// file system error handler | |
function onFileSystemError(error) { | |
var msg = 'file system error: ' + error.code; | |
navigator.notification.alert(msg, null, 'File System Error'); | |
} | |
// logs file events | |
function onFileEvent(event) { | |
console.log('file event: ' + event.target.fileName + ' ' + event.type); | |
} | |
// called when error reading file | |
function onFileError(event) { | |
console.log('file error: ' + event.target.error.code); | |
} | |
// called when file is written | |
function onFileWrite(event) { | |
onFileEvent(event); | |
console.log('FileWriter position=' + | |
event.target.position + ", length=" + event.target.length); | |
} | |
// writes a text file to the device | |
function writeFile() { | |
// root file system entry | |
var root = getFileSystemRoot(), | |
// writes a file | |
write_file = function(writer) { | |
var lineCount = 1; | |
// set the callbacks | |
writer.onwritestart = onFileEvent; | |
writer.onprogress = onFileEvent; | |
writer.onwrite = onFileWrite; | |
writer.onabort = onFileEvent; | |
writer.onerror = onFileError; | |
writer.onwriteend = function(event) { | |
onFileEvent(event); | |
lineCount += 1; | |
if (lineCount <= 3) { | |
// append a new line | |
writer.write('Line ' + lineCount + '.\r\n'); | |
} | |
else { | |
alert(writer.fileName + | |
' length=' + writer.length + | |
', position=' + writer.position); | |
} | |
} | |
// append | |
writer.seek(writer.length); | |
// write to file | |
writer.write('Line ' + lineCount + '.\r\n'); | |
}, | |
// creates a FileWriter object | |
create_writer = function(fileEntry) { | |
fileEntry.createWriter(write_file, onFileSystemError); | |
}; | |
// create a file and write to it | |
root.getFile('bbgap.txt', {create: true}, create_writer, onFileSystemError); | |
} | |
// remove file system entry | |
function removeFile() { | |
var root = getFileSystemRoot(); | |
var remove_file = function(entry) { | |
entry.remove(function() { | |
navigator.notification.alert(entry.toURI(), null, 'Entry deleted'); | |
}, onFileSystemError); | |
}; | |
// retrieve a file and truncate it | |
root.getFile('bbgap.txt', {create: false}, remove_file, onFileSystemError); | |
} | |
</script> | |
<title>File Create/Remove</title> | |
</head> | |
<body onload="init()"> | |
<h3>window.device</h3> | |
<p id="window.device.phonegap">[window.device.phonegap]</p> | |
<input type="button" value="Write File" onclick="writeFile();return false;" /> | |
<input type="button" value="Remove File" onclick="removeFile();return false;" /> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@aya-salama1989 +1
for me 'file://' was missing