我需要一些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);
});
});
window.cordova.file.dataDirectory +'sample.db';工作正常!谢谢 :-) –