在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  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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值