アドオンビルダのDataディレクトリ内のSQLiteデータベースにアドオンsdk v1.5を使用してアクセスする方法はありますか?アドオンビルダのデータディレクトリ内のSQLiteデータベースにアクセスする方法
これは私が使用していたコードです:
var {Cc, Ci, Cu} = require("chrome");
var data = require('self').data;
// This is an active module of the pankajsingh5k Add-on
exports.main = function() {
var {Services} = Cu.import("resource://gre/modules/Services.jsm");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("Desk", "Helper.sqlite");
var mDBConn = Services.storage.openDatabase(file);
console.log('loading');
var statement = mDBConn.createStatement("SELECT * FROM Words");
を今FileUtils.getFileは()デスクトップの略で、「デスク」に設定されています。私はどのように私はBuilderのディレクトリ構造上の追加でSQL Liteのファイルにアクセスできるか分からない。
答えに感謝し、詳細を明らかにする。私は "机"の代わりに "ProfD"を使用します。すべての単語は事前にsqliteデータベースに保存されているので(あらかじめ用意されています)、誰かがアドオンをインストールするとsqlliteデータベースをプロファイルディレクトリにコピーする方法はありますか? –
'NetUtil.ioService.newChannel(data.url(...)、null、null).open()'を使用して入力ストリームを取得し、 'FileUtil.openFileOutputStream(...)'を使用して出力ストリームを取得します。それから 'NetUtil.asyncCopy()'を使ってコピーします。 –
私は上記のコメントを理解しているかどうかはわかりません。上記を行うための最良の方法は何でしょうか。私は、アドオンのインストール(または最初の実行)のプロファイルディレクトリに空のsqliteファイルを作成し、インターネット上のどこかでホストされているsqlite dbのデータが入ったテーブルを取得する必要があります。親切なことに、私はアドオン開発の初心者ですからコメントを詳しく説明します。 –