Java 7 - Как проверить, совместима ли ОС с POSIX


Я пишу кросс-платформенное приложение, которое создает временные файлы и копирует их в другое место, где они должны быть доступны для всех. (По умолчанию только владелец имеет доступ на чтение к временным файлам.) Я попытался использовать права доступа к файлу POSIX следующим образом:

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

Но это приводит к исключению на непозиционных платформах:

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

Я хочу добавить простую проверку, чтобы я мог использовать права доступа к файлам там, где это необходимо, не нарушая совместимость с остальные платформы.

1 19

1 ответ:

Копаясь глубже в коде JDK, это проверка, используемая для POSIX

Из java.nio.file.TempFileHelper

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

Вы можете использовать эту проверку.