2012-06-14 179 views
0

我把我的文件放在目录assets中。我如何得到它们? 我试图按照指示,但都没有奏效:访问文件系统

File f = new File("/data/data/ant.BrowserX/files/" + pagCorrente + ".html"); 

File f = new File("file:///android_asset/" + pagCorrente + ".html"); 

没有错误,但运行我不能访问该文件。我如何访问“资产”目录?

编辑

感谢您的诀窍。我有问题使用BufferedReader读取文件,并初始化它,而不是使用InputStream。

in = new BufferedReader(new FileReader(f)); 

我该怎么办?

+0

“/ data/data”目录只能在拥有根权限的根设备和应用上访问... – WarrenFaith

回答

2

流,我知道你可以用它来得到的InputStream:

final AssetManager assetMgr = this.getResources().getAssets(); 
    InputStream is = assetMgr.open(pagCorrente +".html"); 

所以也许你可以使用:

File f = new File(this.getResources().getAssets() + pagCorrente + ".html"); 
+0

您知道一种解决BufferedReader问题的方法吗? – Antilope

4

您可以通过getAssets从文件中获取一个InputStream()方法中getResources():

InputStream is = getResources().getAssets().open("file.html"); 

然后就转换成任何你需要

1

简单的答案是,您不访问“目录”资产。 .apk中没有目录结构,它只是数据。框架知道如何访问它(getAssets()),但不能像标准目录那样使用它。

话虽这么说,如果你想使用的WebView和访问HTML文件(这是什么样子),他们把一个“假”的路径引用你可以使用这样的:

WebView wv = (WebView)this.findViewById(R.id.yourWebView); 
wv.loadUrl("file:///android_asset/" + pagCorrente + ".html");