任何人都知道一种方法/类/库,它可以让我轻松地在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