由于您说过您不打算在任何地方托管它,因此您可以将代码移至打包的应用程序中。从那里可以使用chrome.fileSystem
api。
使用choiceEntry()来询问用户他们希望应用程序能够读取/写入的目录。在回调中,检查返回的条目是否有效,然后将其存储以备后用。
var userDir = null;chrome.fileSystem.chooseEntry({type: 'openDirectory'}, function(theEntry) { //do sanity check(s) and store it if(!theEntry.isDirectory) { //report error return; } userDir = theEntry;});一旦你有一个目录条目参考比你可以使用的GetFile()得到一个文件的引用,创建它,如果它不存在,这同样适用于创建子目录刚刚替补
getFile用
getDirectory。然后使用createWriter()获取FileWriter实例以写入该文件。
function saveData(filename,data){ if(!userDir) { //report error return; } userDir.getFile(filename, {create: true}, function(fileEntry) { if(!fileEntry || !fileEntry.isFile){ //report error return; } fileEntry.createWriter(function(fileWriter) { fileWriter.onwriteend = function(e) { //report success }; fileWriter.onerror = function(e) { //report error: e.toString() }; //Create a Blob from the data and write it. var blob = new Blob([data], {type: 'text/plain'}); fileWriter.write(blob); }); });}//at some point after user has selected directorysaveData("log.txt","Some data");检查各种文档以了解错误报告和其他必要性。
如果只想询问用户一次目录,请使用keepEntry()保存目录条目的ID。并使用restoreEntry()获取目录的引用。从那里开始,只需执行saveData函数中的步骤即可。检查文档以了解其他过程,例如读取文件。



