<button onclick="TextWrite()">Text Write</button>
<button onclick="TextRead()">Text Read</button>
<button onclick="Delete()">File Delete</button>
<script type="text/javascript">
function TextWrite()
{ writeToLocal("/hoge.txt", "Write Text File\nhoge.txt\nTest Data");
}
function TextRead()
{ readToLocal("/hoge.txt");
}
function Delete()
{ deleteToLocal("/hoge.txt");
}
function errorHandler(e)
{ 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_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
window.alert('Error: ' + msg);
}
function writeToLocal(filename, content)
{ // chrome以外は弾く
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('chrome') == -1)
{ alert("This Page is Google Chrome only!");
}
// クオータを要求する。TEMPORARYの場合は直接 webkitRequestFileSystem を呼んでよい
webkitStorageInfo.requestQuota(PERSISTENT, 1024,
webkitRequestFileSystem(PERSISTENT, 1024, fsCallback, errorHandler), errorHandler);
function fsCallback(fs)
{ fs.root.getFile(filename, {create: true},
function(fileEntry)
{ fileEntry.createWriter(function(fileWriter)
{ fileWriter.onwriteend =
function(e)
{ alert("Success! : " + fileEntry.fullPath);
};
fileWriter.onerror = function(e)
{ alert("Failed: " + e);
};
var output = new Blob([content], {type: "text/plain"});
fileWriter.write(output);
}, errorHandler);
}, errorHandler);
}
}
function readToLocal(filename)
{ window.webkitRequestFileSystem(window.PERSISTENT, 0,
function(fs)
{ fs.root.getFile(filename, {},
function(fileEntry)
{ fileEntry.file(
function(file)
{ var reader = new FileReader();
reader.onload =
function()
{ window.alert(this.result);
}
reader.readAsText(file);
});
}, errorHandler);
}, errorHandler);
}
function deleteToLocal(filename)
{ window.webkitRequestFileSystem(window.PERSISTENT, 0,
function(fs)
{ fs.root.getFile(filename, {create: false},
function(fileEntry)
{ fileEntry.remove(
function()
{ window.alert("File Delete! : " + filename);
},
errorHandler);
},
errorHandler);
},
errorHandler);
}
</script>
|