0

我需要一些Cordova-plugin-file的幫助來備份在Windows 10應用中由cordova-sqlite-storage使用的數據庫。 我的代碼在Android平臺上運行良好。可以雙向複製數據庫(備份和恢復)。由應用程序使用的數據庫 似乎是以下幾點:在Windows 10中使用cordova-plugin-file複製SQLite數據庫cordova-sqlite-storage

C:\ Users \用戶爲myuser \應用程序數據\本地\包\ io.cordova.hellocordova_h35559jr9hy9m \ LocalState \ sample.db

應用程序試圖使用此位置找到該文件,但它無法找到:

MS-APPX:///databases/sample.db

我如何得到正確的位置用於Windows拷貝的文件?

這是我用來複制文件的代碼:

backupDatabase(名稱:字符串):無極{

return new Promise<boolean>((resolve, reject) => 
{ 
    var fileName: string = window.cordova.file.applicationStorageDirectory + 'databases/' + name; 
    var directoryName: string = window.cordova.file.externalRootDirectory; 

    window.resolveLocalFileSystemURL(fileName, (file: FileEntry) => { 
    console.log('[!] Database exists: ' + fileName); 
    console.log('[!] Storage: ' + directoryName); 
    window.resolveLocalFileSystemURL(directoryName, (directory: DirectoryEntry) => { 
     console.log('[!] Directory: ' + directory.toURL()); 
     directory.getDirectory("Backup", {create: true, exclusive: false}, (directoryBackup: DirectoryEntry) => { 
     console.log('[!] Directory: ' + directoryBackup.toURL()); 
     file.copyTo(directoryBackup, name, (copiedFile: Entry) => { 
      console.log('[!] Copy success'); 
      resolve(true); 
     }, (error: FileError) => { 
      console.log('[!] Copy failed: ' + error.code); 
      reject(error); 
     }); 
     }, (error: FileError) => { 
     console.log('[!] Backup Directory not found: ' + directoryName + 'Backup' + ' errorcode: ' + + error.code); 
     reject(error); 
     }) 
    }, (error: FileError) => { 
     console.log('[!] Directory not found: ' + directoryName + ' errorcode: ' + + error.code); 
     reject(error); 
    }); 
    }, (error: FileError) => { 
     console.log('[!] Database not found: ' + fileName + ' errorcode: ' + + error.code); 
     reject(error); 
    }); 
}); 

回答

0

應用程序試圖使用此位置找到該文件,但它不是發現:

MS-APPX:///databases/sample.db

我如何得到正確的位置用於Windows拷貝的文件?

您正在使用錯誤的模式ms-appx:///指的是package installed location

對於C:\Users\myuser\AppData\Local\Packages\io.cordova.hellocordova_h35559jr9hy9m\LocalState\sample.db

你需要使用ms-appdata:///local/sample.db

+0

window.cordova.file.dataDirectory +'sample.db';工作正常!謝謝 :-) –

相關問題