我的资源文件夹有一个子文件夹树..我正在尝试访问该目录中的pdf ..网址如下
url = QP/28/28/mth.pdf
完整目录如下
ful directory = file:///data/data/com.example.testqstn/files/QP/28/28/mth.pdf
我使用以下代码访问了路径
intent.setDataAndType(Uri.parse("file://" + getApplicationContext().getFilesDir()
+ "/"+url), "application/pdf");
startActivity(intent);
finish();
我没有收到任何错误信息,但是pdf没有打开..当没有使用子文件夹时,pdf只是出现在资产文件夹中..然后pdf打开正确.. 究竟究竟是什么问题???
并且日志cat没有显示任何错误..
答案 0 :(得分:4)
你不需要传递文件路径,因为资产在apk中构建,所以你只需在这个例子中使用这个函数我从资产中读取文本文件..
String[] files = assetManager.list("fonts/temp/temp1/HippaPrivarcyDocument");
// Above line gives the list files in asset particular sub folder........
InputStream input;
try {
input = getAssets().open("fonts/temp/temp1/HippaPrivarcyDocument");
int size = input.available();
byte[] buffer = new byte[size];
input.read(buffer);
input.close();
// byte buffer into a string
text = new String(buffer);
} catch (Exception e) {
}
一切顺利
答案 1 :(得分:1)
的解决强> 的
真的很简单.. 要访问assets文件夹中的子文件夹,您需要以下内容..
首先按文件名访问文件..
File file = new File(getFilesDir(), fname);
第二次尝试打开文件时,请同时使用文件名和文件的URL
in = assetManager.open(url+fname);
意图中的第3个只使用文件名..(我使用的是整个路径)
intent.setDataAndType(
Uri.parse("file://" + getFilesDir() + "/"+fname),
"application/pdf");
答案 2 :(得分:0)
您必须使用三个///
。试试这个:
intent.setDataAndType(Uri.parse("file:///android_asset/" + "relative_path");