Java изменить права доступа к файлу

Очень часто, особенно, в Unix-системах необходимо просматривать и управлять правами доступа к файлам. Java предлагает API для просмотра права с помощью класса File:

  • File.canRead() – возвращает true, если есть доступ на чтение
  • File.canWrite() – возвращает true, есть есть возможность изменить файл
  • File.canExecute() – возвращает true, если файл может быть запущен

Также можно изменять права доступа с помощьюFile.setExecutable()File.setWritable() и File.setReadable(). Пример кода:

package ru.mydesignstudio.file;

import java.io.File;

public class TestPermissions {
    public static void main(String[] args) {
        File testFile = new File("./testFile.txt");
        if (testFile.exists()) {
            System.out.println("Чтение разрешено: " + testFile.canRead());
            System.out.println("Изменение разрешено: " + testFile.canWrite());
            System.out.println("Запуск разрешен: " + testFile.canExecute());

            testFile.setExecutable(false);
            testFile.setReadable(true);
            testFile.setWritable(false);

            System.out.println("----");

            System.out.println("Чтение разрешено: " + testFile.canRead());
            System.out.println("Изменение разрешено: " + testFile.canWrite());
            System.out.println("Запуск разрешен: " + testFile.canExecute());

            testFile.setExecutable(false);
            testFile.setWritable(true);
            testFile.setReadable(true);
        }
    }
}

Результат выполнения:

Чтение разрешено: true
Изменение разрешено: true
Запуск разрешен: false
----
Чтение разрешено: true
Изменение разрешено: false
Запуск разрешен: false