在我的Chrome应用中,我正在将一些数据写入文件。 我在Storage APIs
下的官方网站上使用了以下代码chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
writableFileEntry.createWriter(function(writer) {
writer.onerror = errorHandler;
writer.onwriteend = function(e) {
console.log('write complete');
};
writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
}, errorHandler);
});
现在我需要避免弹出保存对话框,并将此文件保存在预定义的位置。
这可能吗?
答案 0 :(得分:5)
如果您想要持久数据,但又不想让用户在本地计算机上使用数据位置,则可以选择以下几种方法:
这些都不会为您提供用户可以访问的真实文件。如果用户(除了您自己的应用程序之外)需要能够访问您编写的文件,则需要询问用户将文件放在何处。正如Cerbrus在你的问题评论中所说的那样,默默地将文件放在用户机器的某个地方将是一个安全问题。
Chrome 31中的新功能是chrome.fileSystem.retainEntry。使用此API,您的应用程序将保留在应用程序重新启动时保留大量fileEntries(包括目录)的功能,这样您就不必一直指责用户选择文件位置。我的理解是,允许用户选择哪些位置存在限制,因此恶意应用无法指示用户指示Chrome覆盖系统文件。