В 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/”