使用 PhoneGap 将文件从 www 复制到“文档”

Posted

技术标签:

【中文标题】使用 PhoneGap 将文件从 www 复制到“文档”【英文标题】:Copy a file from www to 'Documents' using PhoneGap 【发布时间】:2013-03-10 21:07:23 【问题描述】:

我正在尝试将存储在 phonegap 文件夹 (www/default_files/file.txt) 中的文件复制到 ios 中的文档文件夹中,到目前为止我得到的是:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys)

  fileSys.root.getFile("file.txt", null, function(theFile) // file exist don't do anything,
    function(error)
    
      // file does not exist, so copy it
      fileSys.copyTo(fileSys.root.fullPath, "www/default_files/file.txt",
        function success(entry)
        
          console.log("Success: " + entry);
        ,
          function error(entry)
        
          console.log(entry);
        );
  );
, fileError);

fileSys.root.fullPath 包含正确的 Documents Path,问题是如何访问 www 文件夹...

有什么想法吗?

【问题讨论】:

【参考方案1】:

此代码适用于我在 iOS 上。该函数实现了将数据库文件从/www文件夹复制到/Documents文件夹。

function copyBase()
    var wwwPath = window.location.pathname;
    var basePath = 'file://'+ wwwPath.substring(0,wwwPath.length-10);
    window.resolveLocalFileSystemURL(basePath+'myDB.db', 
        function(fileDB)
            console.log('success! database was found')  
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, null);

                function onSuccess(fileSystem) 
                    var documentsPath = fileSystem.root;
                    fileDB.copyTo(documentsPath, 'myDB.db',
                    function()
                        console.log('copying was successful')
                    , 
                    function()
                        console.log('unsuccessful copying')
                    );
                
        , 
        function()
            console.log('failure! database was not found')
        );

【讨论】:

您可以使用 cordova.file.applicationDirectory 代替 hacky www-path。【参考方案2】:

您可以通过以下方式访问 www 文件夹/var/mobile/Applications/35----------------9087/yourapp.app/www/yourfolder /yourfilename.ext

编辑 使用alert(window.location.pathname); 查找您的应用程序的路径。

【讨论】:

【参考方案3】:

使用cordova-plugin-file。 然后您可以使用字符串访问 www 文件夹:cordova.file.applicationDirectory+ "www/" 和 Documents 文件夹使用字符串: cordova.file.documentsDirectory.

【讨论】:

以上是关于使用 PhoneGap 将文件从 www 复制到“文档”的主要内容,如果未能解决你的问题,请参考以下文章

将文件从应用程序文件夹复制到 JQM/Phonegap App 的根文件夹?

无法存档更新的 iOS PhoneGap 应用程序

如何在 PhoneGap 1.x 中更改起始页

使用phonegap从iPhone中的Documents文件夹加载本地网站?

Phonegap - 使用 Eclipse 升级到 3.0?

Phonegap 访问“www”文件夹