Java 7 - Как проверить, совместима ли ОС POSIX
Я пишу кросс-платформенное приложение, которое создает временные файлы и копирует их в другое место, где их нужно читать каждому. (По умолчанию только владелец имеет доступ для чтения к временным файлам.) Я попытался использовать права доступа к 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");
Вы можете использовать эту проверку.