【发布时间】:2015-08-25 17:11:07
【问题描述】:
我在 Chromebook 上摸索着免费的 Chrome 开发编辑器。我正在尝试使用 fileSystem 来读取和写入 .txt 文件。这一切都非常紧凑,一点也不像 C 语言。我什至无法判断我是否被允许做某事,更不用说在哪里找到合适的地方了。
我认为我可以使用 Files thingy 看到的文件位于允许我在其中播放的沙箱中(意思是应用程序可以访问的文件夹?)根称为下载。果然,如果我使用所有点调用和回调参数进行读取,如 developer.chrome.com/apps/filesystem 中的示例所示,它就可以工作。但我必须有一个提示 每次读取和写入。
更多的谷歌搜索想出了这个技巧:(我认为它实际上是在 stackoverflow 中)一个chrome.runtime 调用,getPackagedDirectoryEntry,这似乎让我可以处理我的应用程序的文件夹。伟大的!这就是我不需要经过提示的全部内容。无论如何,对于 readfile。
但是尝试将相同的技巧应用于写入文件并没有奏效。事实上,它没有做任何可辨别的事情。没有错误,没有抱怨。没有。即使带有提示的写入文件工作正常(所以大概我有权限和 Blob 构造。)该怎么办?
这是我的代码:
function test(){
// Samsung 303C Chromebook - Chrome Dev Editor - /Downloads/Daily/main.js
// prompted write
chrome.fileSystem.chooseEntry({type:'saveFile'},function(a){
a.createWriter(function(b){
b.write(new Blob(["Programming fun"],{type:'text/plain'}));
},function(e){trace.innerText = 'error is ' + e;});
});
// unprompted read
chrome.runtime.getPackageDirectoryEntry(function(a){
a.getFile('text.txt',{},function(b){
b.file(function(c){
var d = new FileReader();
d.onloadend = function(){trace.innerText = this.result;};
d.readAsText(c);
});
});
});
// unprompted write - why not?
chrome.runtime.getPackageDirectoryEntry(function(a){
a.getFile('new.txt',{create:true},function(b){
b.createWriter(function(c){
c.write(new Blob(["Miss Manners fan"],{type:'text/plain'}));
},function(e){trace.innerText = 'error is ' + e;});
});
});
}
【问题讨论】:
-
不清楚您所说的“示例代码”和“不起作用”是什么意思。
-
是的,通过示例代码(尽管请正确格式化 - 所有行必须以 4 个空格开头),您的问题就很清楚了。我会尽快回复。
-
顺便说一句,您的问题不再包含问题,只有代码。请正确编辑它 - 当你这样做时,我已经准备好了答案。
-
非常感谢您的编辑!我从这个问题中剪掉了一点多余的绒毛,赞成努力并回答了。
标签: javascript file-io google-chrome-app chromebook chrome-dev-editor