从assets / www目录访问文件
比方说,我的资产/ www目录(在我的index.html旁边)有一个名为foo.html
的文件(非常舒适)。
我想将该文件复制到设备上的其他位置。 我的第一个方法window.resolveLocalFileSystemURI("foo.html", cool(), notCool());
不pipe用。 还有像www /这样的前缀,它不会。
知道是否真的有可能通过Phonegap访问文件会很有趣。 我不确定,因此希望看到一个代码片段,如果可能的话,如何获取资产目录中文件的FileEntry。
编辑:好吧,现在我们有这样的电话
window.resolveLocalFileSystemURI("file:///android_asset", function(entry){ console.log(entry.fullPath);}, function(evt){ console.log(evt.code);} );
但是我们得到了一个code: undefined
错误code: undefined
(Phonegap v1.2)和code: 1
with v1.0(code 1 = file not found ?!)
您应该能够以这种方式访问文件:
window.resolveLocalFileSystemURI("file:///android_asset/www/foo.html", onResolveSuccess, onFail);
然后可以使用File API – FileEntry.copyTo或FileEntry.moveTo实际执行操作。 注意 – 您实际上不能写入assset / www文件夹,只能写入SD卡。
希望这可以帮助
你不能做你想做的事情。 资产目录中的文件在技术上不在文件系统中,因此无法通过File API进行访问。 这意味着调用window.resolveLocalFileSystemURI()
不会返回给你一个FileEntry。
最好的希望是通过XHR访问这些文件。 如果它们是基于文本的,则可以始终使用XHR的结果并使用FileWriter将其写入文件系统。 我写了一篇博文,演示如何使用XHR从资产目录中获取文件。
http://simonmacdonald.blogspot.com/2011/12/on-fourth-day-of-phonegapping-creating.html
Leon – “你实际上不能写入assset / www文件夹,只能写入SD卡”第一部分是真实的,你不能写入资产/ wwwpath。 但是,如果应用程序安装在设备上,则可以创build并写入文件,并以android的根目录创build。 如果应用程序安装在SD卡上,则该文件将在SD卡的根目录中创build。 在清除应用程序的用户数据时不会删除或更改这样创build的文件,并且在删除应用程序时不会删除这些文件。