您的位置:首页 > 移动开发 > Android开发

在Android中解析ls 命令得到目录列表的方法

2012-05-02 11:36 555 查看
在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(" ")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: