0

我正在为 android 上的 firefox 开发扩展,这是我的第一次尝试,我正面临艰难时期,我正在尝试将一些数据存储在 sqlite 文件上,使用Mozilla 存储 API访问并存储在存在的 sqlite 文件中使用扩展名在下载目录中。我试过这段代码

var f = new FileUtils.File("file:///storage/sdcard0/Download/bd.sqlite");
file = FileUtils.getFile("ProfD", [f]);   
mDBConn = Services.storage.openDatabase(file); 
let stmt = mDBConn.createStatement("INSERT INTO try (k,url,track) VALUES(1,'twitter',12)");
stmt.executeAsync();

我收到了这个错误:

E/GeckoConsole( 7345): [JavaScript Error: "NS_ERROR_FILE_UNRECOGNIZED_PATH: Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]" {file: "resource://gre/modules/XPIProvider.jsm -> jar:file:///data/data/org.mozilla.firefox/files/mozilla/sru26yxk.default/extensions/trackDetect@fst.org.xpi!/bootstrap.js" line: 322}]

我真的迷路了,我知道路径有问题但是,它是正确的,我认为问题是如何将字符串路径转换为可以读取的 URI。

4

1 回答 1

0

new FileUtils.File()创建一个nsIFile实例,而不是nsIURI. 因此,您必须将文件路径传递给它,而不是 URI:

var f = new FileUtils.File("/storage/sdcard0/Download/bd.sqlite");
于 2013-05-28T09:35:07.010 回答