2010-01-05 130 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); 
     } 
    } 
}