1
추가 기능 sdk v1.5를 사용하여 추가 기능 빌더의 데이터 디렉토리에있는 SQLite 데이터베이스에 액세스 할 수있는 방법이 있습니까?추가 기능 빌더의 데이터 디렉토리에있는 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()를 바탕 의미 "데스크"로 설정됩니다
이
내가 사용하고있는 코드입니다. 내가 어떻게 빌더 디렉토리 구조에 추가에서 SQL 라이트 파일에 액세스 할 수 있는지 모르겠다.
답변을 주셔서 감사 드리며 세부 사항을 명확히하십시오. 나는 "Desk"대신에 "ProfD"를 사용할 것입니다. 모든 단어가 미리 (미리 채워진) sqlite 데이터베이스에 저장 될 것이고 누군가가 addon을 설치할 때 프로필 디렉토리에 sqllite 데이터베이스를 복사 할 수있는 방법이 있습니까? –
예. 'NetUtil.ioService.newChannel (data.url (...), null, null) .open()'을 사용하여 입력 스트림을 얻고 'FileUtil.openFileOutputStream (...)'을 사용하여 출력 스트림을 얻습니다. 그런 다음'NetUtil.asyncCopy()'를 사용하여 하나에서 다른 것으로 복사하십시오. –
위의 의견을 이해할 수 있는지 확실하지 않습니다. 위의 작업을 수행하는 최선의 방법은 무엇입니까? 내가 addon 설치 (또는 첫 번째 실행)에 프로필 디렉토리에 빈 sqlite 파일을 만들고 인터넷 어딘가에 호스팅 된 sqlite db에서 데이터로 채워진 테이블을 얻어야합니다. 친절하게도 내가 addon 개발에 초보자이기 때문에 주석을 자세히 설명합니다. –