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

luk*_*ssz 3 android

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

我尝试这样做:

InputStream scriptFile = activity.getResources().openRawResource(R.raw.file); // script path
Run Code Online (Sandbox Code Playgroud)

但我无法获取文件路径

Sae*_*ari 5

你可以像这样执行你的 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();
        }
Run Code Online (Sandbox Code Playgroud)

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

Uri uri = Uri.parse("android.resource://com.your.package/raw/filename");
Run Code Online (Sandbox Code Playgroud)

  • 如何获取绝对文件路径? (3认同)