В Java права доступа к файлам очень специфичны для ОС: *nix, NTFS (Windows) и FAT/FAT32, все они имеют разные права доступа к файлам. Java поставляется с некоторым общим разрешением на доступ к файлам для работы с ним.
Проверьте, позволяет ли разрешение на файл :
- file.CanExecute(); – возвращает значение true, файл является исполняемым; значение false – нет.
- file.CanWrite(); – возвращает значение true, файл доступен для записи; значение false – нет.
- file.CanRead(); – возвращает значение true, файл доступен для чтения; значение false – нет.
Установите разрешение на доступ к файлу :
- файл.setexecutable (логический) ; – true, разрешить выполнение операций; false, чтобы запретить это.
- файл.Настраиваемый для чтения (логический) ; – true, разрешает операции чтения; false, чтобы запретить их.
- файл.Записываемый (логический ); – true, разрешить операции записи; false, чтобы запретить это.
В системе *nix вам может потребоваться настроить дополнительные параметры разрешения файла, например, установить разрешение 777 для файла или каталога, однако классы ввода-вывода Java не имеют для этого готового метода, но вы можете использовать следующий обходной путь:
Runtime.getRuntime().exec("chmod 777 file");
Пример разрешения файла
package com.mkyong.file;
import java.io.File;
import java.io.IOException;
public class FilePermissionExample
{
public static void main( String[] args )
{
try {
File file = new File("/mkyong/shellscript.sh");
if(file.exists()){
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
}
file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Пример разрешения файла
Оригинал: “https://mkyong.com/java/how-to-set-the-file-permission-in-java/”