私はCordovaモバイルアプリを持っており、インポート機能を実装しています。ユーザーはファイルclients.db
をDocuments
フォルダに配置し、アプリケーションからインポート機能を起動する必要があります。アプリケーション自体は、このファイルを現在の場所から内部データベースストレージにコピーして、SQLiteデータベースとして開く準備ができています。ファイルをCordovaの内部ストレージにコピー
ここに私のコード:
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory + "/Documents/clients.db", function(fs) {
window.resolveLocalFileSystemURL("file://data/data/com.app.clients/databases/",function(directoryEntry) {
fs.copyTo(directoryEntry, "clients.db", function() {
//done
}, function(err) {
//here I get err = 1
});
}, function(){
//err
});
}, function(){
//err
});
ファイルclients.db
はDocuments
フォルダ内にあるが、私は、コードを起動したときにcopyTo
機能は、ファイルが見つからないことを意味ERR = 1を返す失敗しました。
デバッグしている間、私は、変数fs
が正しくに付加価値化されていることに気づいた:URLはフォルダのパスに一致してい
filesystem : FileSystem fullPath : "/Documents/clients.db" isDirectory : false isFile : true name : "clients.db" nativeURL : "file:///storage/emulated/0/Documents/clients.db"
__proto__ : Entry
directoryEntry
はあまりにもcorrecltyを付加価値化するし、それをディレクトリ
あなたはfile:///data/data/com.app.clients/databases/を意味しますか?なぜそれは奇妙に見えるのですか? –
コードバス機能からルートパスを使用してみてください... – crak
1つは原点を解決し、もう1つは目的地を解決します。私は何か間違っているのですか? –