用java获取“ls -la”信息

时间:2012-10-19 15:41:38

标签: java file posix ls

我想知道我是否可以使用Java获得这样的输出

enter image description here

这必须在Linux,Windows和Mac下运行;如果可能,我不想使用Runtime.exec()

2 个答案:

答案 0 :(得分:1)

我认为您可以使用File对象的元数据来获取所需的任何内容。请检查以下链接:

http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html

示例:

Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);

System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());

(此示例取自我提供的链接)。

希望这有助于你


检查Java API,我发现您需要的数据(大小,属性等)可通过File类方法访问。检查:http://docs.oracle.com/javase/7/docs/api/java/io/File.html

请注意,linux和mac都是类Unix系统,而windows则不是。因此,您将无法获得可以在windows或Mac上获得的所有文件属性...但是您可以获得最重要的值

答案 1 :(得分:1)

不,您不能,因为您想要的输出具有* nix-only属性“owner”和“group”,这些属性在Windows平台上不存在。 java File没有此信息,这是在不使用Runtime.exec()的情况下获取文件信息的唯一方法