从“ ls -l”命令获取文件和目录名称

时间:2019-05-22 12:22:17

标签: java string

我正在使用Jsch库通过SSH协议在服务器上进行一些操作。这些操作之一需要从“ ls -l” bash命令的输出中获取文件和目录名称。

我试图以这种方式分析字符串,但这非常糟糕:

private static final int STRING_CUT_POINT = 46;

   String s = pName.substring(STRING_CUT_POINT);
   if (s.length() > 0) {
       int i = 0;
       while (s.charAt(0) != ' ') {
           s = pName.substring(STRING_CUT_POINT + i);
           i++;
       }
       this.name = s.trim();
       if (pName.charAt(0) == 'd') {
       this.type = DIRECTORY;
   } else {
       this.type = this.getFileType(this.name);
      ...

这样,在这样的输出上...​​

drwxr-xr-x 2 mattia mattia 4096 22 mag 11.53 Desktop

我可以得到“桌面”,但是,例如,如果所有者名称较短,则输出为“ 11.53 Desktop”。 我也尝试使用string.lastIndexof(' '),但不适用于名称中包含空格的文件/目录。 有想法吗?

0 个答案:

没有答案