想获取文件的 权限信息   文件名字为a a.lrc    文件名a和a中间有个空格在adb shell 输入:         ls -l sdcard/mp3/a\ a.lrc
得到
----rwxr-x system   sdcard_rw     1217 2012-09-10 11:29 a a.lrc 想在程序中得到上面的信息,代码如下            //把a a.lrc变成 a\ a.lrc
            filename = file.getName().replace(" ", "\\ ");
System.out.println(filename);
str1 = file.getParentFile().getPath()+"/";   
str2 = "ls -l "+str1.substring(1)+filename;
System.out.println(str2);      //输出----ls -l sdcard/mp3/a\ a.lrc   (同上面的一样) try {
         Process process=Runtime.getRuntime().exec(str2);     
                  buffer=new BufferedReader(new InputStreamReader(process.getInputStream()));
System.out.println( buffer.readLine());     //-------输出null ,
       //如果文件名字间没有空格就没有问题  可以输出正常结果 ,名字间有空格却不能得到 求解下

解决方案 »

  1.   

    getInputStream时,遇到空格就认为结束了吧。
    试试,如果文件名有空格用ascii码表示试试。
      

  2.   

    //把a a.lrc变成 a\ a.lrc
      filename = file.getName().replace(" ", "\\ ");
    空格使用转义字符 \x20 试试。
      

  3.   

    具体怎写呢?
    这样对吗:filename = file.getName().replace(" ", "\\\\x20 ");
    这样就完全不能输出了
      

  4.   


    .replaceAll(" ", "\" \"");解决问题!!!!空格前后加引号