我正在编写一个跨平台的应用程序,它创建临时文件并将这些文件复制到另一个位置,每个人都需要这些文件。 (默认情况下,只有所有者对临时文件具有读访问权。)我尝试使用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
我想添加一个简单的检查,以便我可以在必要时使用文件权限,而不会破坏与其他平台的兼容性。
答案 0 :(得分:33)
深入挖掘JDK代码,这是用于POSIX的检查
来自java.nio.file.TempFileHelper
private static final boolean isPosix =
FileSystems.getDefault().supportedFileAttributeViews().contains("posix");
您可以使用此检查。