首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cordova-plugin-file复制SQLite数据库

使用cordova-plugin-file复制SQLite数据库
EN

Stack Overflow用户
提问于 2017-10-06 05:40:47
回答 1查看 1.8K关注 0票数 0

我需要一些帮助科多瓦插件文件备份数据库使用科多瓦-平方米-存储在Windows 10应用程序。我的代码在Android平台上运行良好。数据库可以双向复制(备份和还原)。应用程序使用的数据库如下:

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

应用程序试图使用这个位置来定位文件,但找不到:

ms-appx://数据库/sample.db

如何获得Windows复制文件的正确位置?

这是我用来复制文件的代码:

backupDatabase(名称:字符串):承诺{

代码语言:javascript
复制
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);
  });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 01:40:17

应用程序试图使用这个位置来定位文件,但找不到: ms-appx://数据库/sample.db 如何获得Windows复制文件的正确位置?

您使用的是错误的方案,ms-appx:///引用了包安装位置

对于C:\Users\myuser\AppData\Local\Packages\io.cordova.hellocordova_h35559jr9hy9m\LocalState\sample.db

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46598968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档