使用 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 的根文件夹?
使用phonegap从iPhone中的Documents文件夹加载本地网站?