【发布时间】:2013-11-26 00:10:01
【问题描述】:
我正在尝试在测试期间写入 android 虚拟设备上的“/data/myFolder”文件夹,为此,我这样做了:
String[] cmd ={"su", "mkdir", dir};
int out = 99;
try {
Process p = Runtime.getRuntime().exec(cmd);
out = p.waitFor();
BufferedInputStream in = new BufferedInputStream(p.getErrorStream());
byte[] bytes = new byte[4096];
while (in.read(bytes) != -1) {
}
in.close();
logger.info("exit status:" + out);
} catch (IOException e) {
logger.severe("IOException " + e.getMessage());
e.printStackTrace();
} catch (InterruptedException e) {
logger.severe("InterruptedException " + e.getMessage());
e.printStackTrace();
}
if (out != 0) {
logger.severe("Folder " + dir + " not created,exit status: " + out);
}
或者我试过了
String cmd ={"su mkdir" + dir};
但是退出状态是 1 并且它没有创建任何文件夹。使用 adb shell 中的 su mkdir /data/myFolder 可以正常工作。 为什么是这个代码?什么意思? (我知道这意味着出了点问题,但是什么?没有找到任何关于 android mkdir 退出代码值的文档)。 谢谢
【问题讨论】:
-
如果你在你尝试过的东西上加一个空格会发生什么:
String cmd = "su mkdir " + dir;? -
我得到相同的错误代码 (1)
-
当然可以。您仍在执行“su”,而不是“mkdir”。请在 Google 上搜索“su”命令的实际作用。
-
@Torben 你是对的,我正在执行 su 命令而不是 mkdir 作为 root。现在 String cmd = "mkdir "+ dir;进程 p = Runtime.getRuntime().exec(cmd);工作正常。
标签: java android mkdir exit-code