Ghulam Ali Ответов: 0

Как использовать команды оболочки adb в C#


Привет всем
Я разрабатываю и приложение для android mobile forensic analysis.Я использую приложение c# windows forms для интерфейса моего проекта.Но мне трудно получить ответ команд из оболочки ADB на c#. Я закончил с некоторой работой, но я не в состоянии отображать информацию в listBox или listView в правильной последовательности. Я получаю информацию о файлах из оболочки adb, но не могу отобразить их в lisBox или ListView в правильной последовательности, например имя файла, дата создания, дата модификации.
Например ls -l возвращает информацию о файле следующим образом
----rwxr-x system   sdcard_rw  8414449 2013-07-12 18:04 Kalimba.mp3<br />
<br />
----rwxr-x system   sdcard_rw   280065 2013-07-12 18:03 abc.mp3<br />

Я хотел бы отобразить эту информацию в listView как и для всех файлов:

Права доступа к файлам расположение файлов дата создания имя файла

----rwxr-x sdcard_rw 2013-07-12 18:03 kalimba.mp3

и то же самое для всех других команд, таких как stat e-t-c

Любая помощь или ссылки будут оценены по достоинству

CHill60

Попробуйте опубликовать код, который вы используете для отображения информации в listBox или listView, и объяснить, какой должна быть правильная последовательность

Ghulam Ali

Система.Диагностика.Процесс Р = новая система.Диагностика.Процесс();
п. Информацию.Значение свойства useshellexecute = false в;
п. Информацию.CreateNoWindow = true;
п. Информацию.Имя файла = "cmd.exe";
pp.StartInfo.Аргументы = "/c adb shell ls -l /sdcard/music/";
п. Информацию.RedirectStandardError = истина;
п. Информацию.RedirectStandardInput = истина;
п. Информацию.RedirectStandardOutput = true в;

п. Начать();

Что streamreader outputWriter = стр. StandardOutput;
Строки errorReader = стр. StandardError.ReadToEnd();
String line = outputWriter.ReadLine();


while (line != null)
{
using (TextReader tr = new StringReader(str))
{
строки;
в то время как ((строка = тр.С readline()) != нуль)
{


String[] temp = строка.Расщеплять(' ');
мыши listview1.Предметы.Добавить(новый ListViewItem(temp));
}
}
строка = outputWriter.С readline();

}
Я хочу, чтобы что-то подобное было в моем listview в случае ls-l
FilePermission Filelocation, Который Дата Создания
права доступа rwx-- 07-03-2013 SD карту

и так далее для всех файлов и всех команд, я просто хочу, чтобы общий метод делал все это

Я могу отображать иногда, когда мне не нужно делать много расщепления, но когда мне нужно разделить строку с целью добавления их в listView, это не работает


AlphaDeltaTheta

Неправильный формат. Сначала взгляните на вывод команды ls. Позвольте мне немного объяснить. ls-это стандартная команда UNIX. Он выводит данные в следующем формате: [file-permission] [length] [last-modified] [name]. где разрешение файла-это (зашифрованное) строковое представление разрешений файла UNIX. Google для man-страниц ls или другой команды, которую вы хотите видеть.

Ghulam Ali

Да, у меня также есть тот же вывод для ls-l, но я хочу отобразить [file-permission][last-modified][name] в listView для каждого файла.
Независимо от того,какая команда используется и что выводится, мой вопрос на самом деле заключается в том, как я могу отобразить некоторые части выходной строки в виде списка для всех файлов с помощью split или какого-либо другого метода..

0 Ответов