假设foo.html
我的assets/www目录(我的index.html旁边)有一个名为sitting(非常舒服)的文件.
我想将该文件复制到设备上的其他位置.我的第一种方法window.resolveLocalFileSystemURI("foo.html", cool(), notCool());
不起作用.还有一个像www /它的前缀它不会.
知道它是否真的可以通过Phonegap访问文件会很有趣.我不相信,因此希望看到一个代码片段如何获取资产目录中的文件的FileEntry - 如果可能的话.
编辑:好的,现在我们有这样的电话
window.resolveLocalFileSystemURI("file:///android_asset", function(entry){ console.log(entry.fullPath);}, function(evt){ console.log(evt.code);} );
但我们得到了一个错误code: undefined
(Phonegap v1.2)和code: 1
v1.0(代码1 =找不到文件?!)
你不能做你想做的事.资产目录中的文件在技术上不在文件系统上,因此无法通过File API访问它们.这意味着调用window.resolveLocalFileSystemURI()
不会返回FileEntry.
您可以期望的最好的方法是通过XHR访问这些文件.如果它们是基于文本的,您始终可以获取XHR的结果并使用FileWriter将其写入文件系统.我写了一篇博文,展示了如何使用XHR从assets目录中获取文件.
http://simonmacdonald.blogspot.com/2011/12/on-fourth-day-of-phonegapping-creating.html
您应该能够以这种方式访问该文件:
window.resolveLocalFileSystemURI("file:///android_asset/www/foo.html", onResolveSuccess, onFail);
然后,您可以使用File API - FileEntry.copyTo或FileEntry.moveTo来实际执行操作.注意 - 您实际上无法写入assset/www文件夹,只能写入SD卡.
希望这可以帮助