用java获取“ls -la”信息

问题描述 投票:-1回答:2

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

enter image description here

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

java file posix ls
2个回答
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或Linux上获得的所有文件属性...但您可以获得最重要的值


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.