在Android中解析ls 命令得到目录列表的方法
在android中我们可以通过Process process=Runtime.getRuntime().exec("ls -l /sdcard/dcim/camera");执行linux下的命令InputStream in=process.getInputStream();得到命令执行结果的二进制流 ls -l xxxx命令的执行结果一般格式为:drwxr-xr-x 2 roo
在android中我们可以通过
Process process=Runtime.getRuntime().exec("ls -l /sdcard/dcim/camera");执行linux下的命令
InputStream in=process.getInputStream();得到命令执行结果的二进制流
ls -l xxxx命令的执行结果一般格式为:
drwxr-xr-x 2 root root 4096 04-27 11:44 eclipse
drwxrwxrwx 2 root root 4096 04-20 21:22 myfolder
drwxr-xr-x 2 root root 4096 04-27 12:58 sdk
-rw-r--r-- 1 root root 82 04-22 15:37 setting.conf
drwxrwxrwx 2 root root 4096 04-20 21:22 tmp
drwxrwxrwx 2 root root 4096 04-21 14:58 tool
-rwxr--r-- 1 Onglu Onglu 544256 04-22 14:05 yoyoplayer for Android 1.5.doc
现在的需求是从上面的执行结果中得到每个项纵向排列的值:
方法:如:String str="drwxrwxrwx 2 root root 4096 04-20 21:22 myfolder"
由于空格数不确定,采用String[] array=str.split(" ");//根据单个空格符分割,一般都会出问题
完整解决方案:
1,按照空格分割字符串,多个空格作为一个空格对字符串进行分割,这里需要用到正则表达式
String[] array=str.split("\\s{1,}")
2,将字符串中的多个空格替换为一个空格,然后根据空格获得数组
String [] array=str.replace("{2,}", " ").split(" ")
更多推荐
所有评论(0)