2010-01-05 88 views
1

任何人都知道一种方法/类/库,它可以让我轻松地在Java中重现* nix ls -l命令的结果?由于平台独立性,直接调用ls不是一种选择。* Java中的Nix ls命令

例如。 $ LS -l myprogram.exe

-rwxrwxrwx 1 auser无1261568年11月15 17点41分C:\ myprogram.exe

+4

为了澄清,你可以说,“ls -l命令”输出的正是部分()你需要什么?例如,如果您只需要文件大小和修改日期,那么一个普通的旧java.io.File对象应该能够做到这一点。但是,如果您也需要权限信息,那么您将进入特定于平台的领域并需要更复杂的类。 – Jeff 2010-01-05 15:50:03

+0

优秀点。我正在移植一个现有的ksh脚本,所以我希望能在Ether中找到一种方法放入并使用。没有我可能会采取什么在java.io.File中可用。 – javacavaj 2010-01-05 16:09:47

回答

0

我想我们没有准备好在Java stadard库中使用Java类。 但是,您可以通过使用java.io包中的类来开发工具,如* nix ls -l工具。

0

这里是ls -R ~的实现,其中列出了文件在主目录中递归开始:

import java.io.*; 

public class ListDir { 

    public static void main(String args[]) { 
     File root; 
     if (args.length > 0) root = new File(args[0]); 
     else root = new File(System.getProperty("user.dir")); 
     ls(root); 
    } 

    /** iterate recursively */ 
    private static void ls(File f) { 
     File[] list = f.listFiles(); 
     for (File file : list) { 
      if (file.isDirectory()) ls(file); 
      else System.out.println(file); 
     } 
    } 
}