Android如何从/res/raw/获取文件路径

4

我把bash脚本放在Android Studio项目的/res/raw/文件夹中。我该如何获取文件路径并使用exec执行它?

我尝试了以下代码:

InputStream scriptFile = activity.getResources().openRawResource(R.raw.file); // script path

但我无法获取文件路径

2个回答

6
您可以这样执行您的bash:
BufferedReader r = new BufferedReader(new InputStreamReader(scriptFile));
        String command = "";
        List<String> commands = new ArrayList<>();
        try {
            command = r.readLine();
            commands.add(command);
            while(command != null){
                command = r.readLine();
                commands.add(command);
            }

            Process p = new ProcessBuilder().command(commands).start();
        } catch (IOException e) {
            e.printStackTrace();
        }

您可以获取原始资源的Uri以创建一个新的File对象:

Uri uri = Uri.parse("android.resource://com.your.package/raw/filename");

好的,但是在你的例子中scriptFile变量没有被定义。我该如何定义它? - lukassz
3
如何获取文件的绝对路径? - lukassz
你可以使用该URI创建一个新的文件对象,然后通过file.getAbsolutePath()获取它。 - Saeed Entezari

-7

或者你可以这样做:

webView.loadUrl("file:///android_asset/sample.html");

1
这是访问资产文件夹中的内容,而不是原始文件夹。 - Matthew Cawley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接