【发布时间】:2014-06-13 22:18:43
【问题描述】:
我想获得使用 Java 代码的 Linux 版本。在不同的 Linux 发行版中,我有不同名称的文件。
/etc/*-release
如何获取所有以-release 结尾的文件内容?
【问题讨论】:
-
最新版本!= 当前版本。想知道当前运行的 linux 版本吗?
我想获得使用 Java 代码的 Linux 版本。在不同的 Linux 发行版中,我有不同名称的文件。
/etc/*-release
如何获取所有以-release 结尾的文件内容?
【问题讨论】:
你可以使用@987654321@
File f = new File("/etc/");
File[] allReleaseFiles = f.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("-release");
}
});
【讨论】:
File[] 恰好包含您要求的文件。
etc 文件夹中的所有文件,并仅在for loop 中添加以release 结尾的文件。我不认为你可以进一步优化这个。
使用 Java java.io.File#listFiles,然后简单地遍历它返回的数组以打开文件。
【讨论】:
执行ls -d /etc/*-release后获取输出即可获取文件。
然后通过Java File 与他们合作。
另请参阅:
【讨论】:
System.getProperty("os.version")
【讨论】:
当然,你现在应该使用 nio 来执行这种类型的操作:
Path dir = Paths.get("/etc");
for (Path file : Files.newDirectoryStream(dir, "*-release"))
System.out.println (new String(Files.readAllBytes(file), "UTF-8"));
【讨论】: