There is actually a way to do this, but it is only available in Google Chrome and mainly for HTML5 applications packaged as extensions. It is planned to make it available in wider distributions, but not quite there yet . It is called the FileSystem API . Here is an example I played with a while ago -
function onInitFs(fs){
console.log("Opened file system " + fs.name);
}
function errorHandler(){
var msg = '';
switch(e.code){
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
window.requestFileSystem(
window.TEMPORARY,
5*1024*1024 ,
onInitFs,
errorHandler
);
function onInitFs(fs){
fs.root.getFile(
'log.txt',
{
create: true,
exclusive: true
},
function(fileEntry){
console.log('fileEntry.isFile = ' + fileEntry.isFile);
console.log('fileEntry.name = ' + fileEntry.name);
console.log('fileEntry.fullPath ' + fileEntry.fullPath);
},
errorHandler
);
}
function errorHandler(){
var msg = '';
switch(e.code){
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
window.requestFileSystem(
window.TEMPORARY,
5*1024*1024,
onInitFs,
errorHandler
);
window.requestFileSystem(
window.TEMPORARY,
5*1024*1024,
function(fs){
console.dir(fs.root);
fs.root.getFile('log.txt');
},
function(error){
console.dir(error);
}
);
source
share