从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的文件,并且在删除应用程序时不会删除这些文件。