是否有可能将现有的sqlite db文件替换为phongeap目录中的其他db文件

时间:2016-03-14 06:47:14

标签: javascript android sqlite cordova filesystems

我有一个要求用其他db文件替换设备数据库,它就像备份和存储目录(下载/备份/ appname /)或服务器,如果我们删除数据或者如果我们丢失了手机,那么我已经从服务器恢复数据并替换为设备数据库文件。 我正在尝试使用代码,但只更换数据库,但我没有。

function doBackup(){
var defered = $.Deferred();
var version = parseFloat(window.device.version);
dbPath = cordova.file.applicationStorageDirectory
  +'/app_webview/databases/file__0/1';
 if(version < 4.4) {  

  dbPath =  cordova.file.applicationStorageDirector+'/app_database
 /file__0/0000000000000001.db';
   }  
 var fileName = 'Backup_' + new Date().getTime();   

 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
 fs.root.getDirectory(backupFolder, {
 create : true,  
 exclusive : false  
   }, function(dir) {      
  window.resolveLocalFileSystemURL(dbPath, function(db) {
  db.copyTo(dir, fileName, function() {
  SaveBackupData(data, GetBackupData); 
   }, onfail)
       });  
   }, onfail);
         }, onfail);

    function onfail(err){
  return defered.reject(err);
 }
    return defered.promise();
 }   

为了替换数据库,我正在尝试下面的代码

     function  copyFileToDB(fName){  
     var defered = $.Deferred();

     // request for file system
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs){
    //request for directory Entry

var fileName = fName;

fs.root.getDirectory("Download/SMU/Backup/", { 
    create: false,
    exclusive: false
}, function(destDirectoryEntry){
 window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory 
+"app_webview/databases/file__0/1",function(fileEntry){     
  fileEntry.copyTo(destDirectoryEntry, fileEntry.name, function(){
            alert("success - "+JSON.stringify(destDirectoryEntry));
        }, onfail);
    },onfail)
}, onfail);
     }, onfail);

    function onfail(err){
return defered.reject(err); 
     }
      return defered.promise();   
   }

请任何人回答这个问题,我一直在尝试这一周但是没有运气也没有得到任何合适的来源..我需要用另一个db文件替换设备db文件(已经备份了功能使用)。 whatsapp如何存储和恢复这样的备份..

Anyhelp非常感谢.. 提前谢谢..

0 个答案:

没有答案