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