6

cordova (phonegap) と彼自身の sqlite DB を使用するアプリがあります (外部の sqlite をインストールしなかったということです)。

DB を SD メモリにバックアップする必要がありますが、sqlite ファイルを phonegap から SD にエクスポートするのに問題があります。

誰か助けてくれませんか?

4

3 に答える 3

1

これは、Cordova 3.5 および org.apache.cordova.file 1.2.1 で良さそうです。

異なるパスに必要ないくつかのバリエーション。

window.resolveLocalFileSystemURL("file:///data/data/my-app-name/databases/name-of.db", function(fs) {
                var parent = "file://mnt/external_sd/";
                var newName = "mybackup.db";
                window.resolveLocalFileSystemURL(parent, function(directoryEntry) {
                    fs.copyTo(directoryEntry, newName, function() {
                        alert("Backup ok");
                    }, failFiles);
                });
            }, failFiles);

function failFiles(error) {        
  if (error.code == FileError.NOT_FOUND_ERR) alert("Message : NOT_FOUND_ERR" )
  else if (error.code == FileError.SECURITY_ERR) alert("Message : SECURITY_ERR" )
  else if (error.code == FileError.ABORT_ERR) alert("Message : ABORT_ERR" )
  else if (error.code == FileError.NOT_READABLE_ERR) alert("Message : NOT_READABLE_ERR" )
  else if (error.code == FileError.ENCODING_ERR) alert("Message : ENCODING_ERR" )
  else if (error.code == FileError.NO_MODIFICATION_ALLOWED_ERR) alert("Message : NO_MODIFICATION_ALLOWED_ERR" )
  else if (error.code == FileError.INVALID_STATE_ERR) alert("Message : INVALID_STATE_ERR" )
  else if (error.code == FileError.SYNTAX_ERR) alert("Message : SYNTAX_ERR" )
  else if (error.code == FileError.INVALID_MODIFICATION_ERR) alert("Message :  INVALID_MODIFICATION_ERR" )
  else if (error.code == FileError.QUOTA_EXCEEDED_ERR) alert("Message : QUOTA_EXCEEDED_ERR" )
  else if (error.code == FileError.PATH_EXISTS_ERR) alert("Message : PATH_EXISTS_ERR" )  
}  
于 2014-08-01T23:22:57.340 に答える