我試圖使用執行命令行,CD不起作用
try {
Process process = Runtime.getRuntime().exec(command);
BufferedReader stream = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = stream.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
}
stream = new BufferedReader(new InputStreamReader(process.getErrorStream()));
while ((line = stream.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
}
} catch (IOException e) {
e.printStackTrace();
}
ls
工程執行cd
。但是cd dir
不起作用。它不會更改目錄。如果我執行pwd
,它仍顯示/
。我讀到每次執行Runtime.getRuntime().exec(command);
時,它都會創建一個新的shell。我想我需要捕獲這個shell並且維護它,直到用戶關閉應用程序。
不僅如此,我沒有在我的輸出中得到任何錯誤。例如。當我放置一個不存在的命令時,我沒有收到錯誤信息。
你還沒有描述什麼「不工作」在這裏的意思。它是否會拋出異常?由於'cd'命令不會輸出任何成功(不像'ls'),你怎麼知道它失敗了?另外 - 你試圖更改什麼目錄? Android對允許訪問哪些目錄有很多限制。 – adelphus
我已經更新了答案。如果我嘗試「cd」到不存在的目錄,它也不會給我任何錯誤。任何想法,爲什麼我沒有收到錯誤信息? –