任何人都知道一種方法/類/庫,它可以讓我輕鬆地在Java中重現* nix ls -l命令的結果?由於平臺獨立性,直接調用ls不是一種選擇。* Java中的Nix ls命令
例如。 $ LS -l myprogram.exe
-rwxrwxrwx 1 auser無1261568年11月15 17點41分C:\ myprogram.exe
任何人都知道一種方法/類/庫,它可以讓我輕鬆地在Java中重現* nix ls -l命令的結果?由於平臺獨立性,直接調用ls不是一種選擇。* Java中的Nix ls命令
例如。 $ LS -l myprogram.exe
-rwxrwxrwx 1 auser無1261568年11月15 17點41分C:\ myprogram.exe
以下是覆蓋了Asaph提到的教程的File類的Javadoc。 http://java.sun.com/javase/6/docs/api/ – bkoch 2010-01-05 15:49:12
我想我們沒有準備好在Java stadard庫中使用Java類。 但是,您可以通過使用java.io包中的類來開發工具,如* nix ls -l工具。
您可以使用java.nio.file
包。
這裏是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);
}
}
}
爲了澄清,你可以說,「ls -l命令」輸出的正是部分()你需要什麼?例如,如果您只需要文件大小和修改日期,那麼一個普通的舊java.io.File對象應該能夠做到這一點。但是,如果您也需要權限信息,那麼您將進入特定於平臺的領域並需要更復雜的類。 – Jeff 2010-01-05 15:50:03
優秀點。我正在移植一個現有的ksh腳本,所以我希望能在Ether中找到一種方法放入並使用。沒有我可能會採取什麼在java.io.File中可用。 – javacavaj 2010-01-05 16:09:47