2011-01-06 2 views
6

Итак, я хочу иметь возможность писать приложение, которое может включать и отображать сообщения logcat, dmesg, а также иметь возможность запускать команды типа 'ls' cat '' echo '' cd. 'Android Runtime.getRuntime(). Exec() для навигации по каталогам

Если я сделать следующее:

nativeProc = Runtime.getRuntime().exec("ls\n"); 
     BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); 
     BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); 
     String line = null; 

     while ((line = in.readLine()) != null) { 
      full = full + "\n" + line; 
     } 

я могу поместить текст «полный» в Text View и посмотреть корневой каталог.

Однако, это все, что я могу сделать. Предположим, я хочу найти каталог и изменить его, у меня проблемы.

Так что, если я это сделать:

nativeProc = Runtime.getRuntime().exec("ls\n"); 
     BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); 
     BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); 
     String line = null; 

     while ((line = in.readLine()) != null) { 
      full = full + "\n" + line; 
     } 
     /* Code here to confirm the existing of a directory*/ 


     nativeProc = Runtime.getRuntime().exec("cd tmp\n"); 
     BufferedReader in2 = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); 
     line = null; 
     String test = "\nStart1:\n"; 
     while ((line = in2.readLine()) != null) { 
      test = test + "\n" + line; 
     } 

я ничего не получаю как для "полных" и "текст"

Любые идеи?

ответ

4

Вы можете выполнить Ls с обеспеченными путь для папки, которые должны быть перечислены

Runtime.getRuntime().exec(new String[] { "ls", "\\tmp"}); 
2

Текущий рабочий каталог связан с текущим процессом. Когда вы выполняете («cd tmp»), вы создаете процесс, меняя его каталог на «tmp», а затем процесс завершается. Рабочий каталог родительского процесса не изменяется.

См. Это для более общего обсуждения changing the current working directory in Java.

1

Как насчет написания файла оболочки, который проверяет наличие файла и всех других реализаций в этом файле и добавляет его на SD-карту и запускает файл оболочки из java с помощью getRuntimr.exec(), вы также можете передавать ему параметры ,