如何检查操作系统是否符合 POSIX 标准

2022-09-01 14:15:49

我正在编写一个跨平台的应用程序,该应用程序创建临时文件并将其复制到另一个位置,在那里每个人都需要读取它们。(默认情况下,只有所有者对临时文件具有读取权限。我尝试使用POSIX文件权限,如下所示:

FileAttribute<Set<PosixFilePermission>> attrs =
  PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rw-r--r--"));
Path temp = Files.createTempFile(null, ".tmp", attrs);

但这会导致非 POSIX 平台上的异常:

java.lang.UnsupportedOperationException: 'posix:permissions' not supported as initial attribute

我想添加一个简单的检查,以便我可以在必要时使用文件权限,而不会破坏与其他平台的兼容性。


答案 1

深入挖掘JDK代码,这是用于POSIX的检查

java.nio.file.TempFileHelper

private static final boolean isPosix =
    FileSystems.getDefault().supportedFileAttributeViews().contains("posix");

您可以使用此检查。


答案 2

推荐