Автор оригинала: Pankaj Kumar.
Класс файлов Java имеет возможность устанавливать права доступа к файлам, но он не является универсальным. Самым большим недостатком является то, что вы можете разделить права доступа к файлам на два набора пользователей – владельца и всех остальных. Вы не можете установить разные права доступа к файлам для группы и других пользователей.
Java Устанавливает права Доступа к Файлам
Java 7 представила PosixFilePermission
| Перечисление и java.nio.файл.Файлы включает в себя метод setPosixFilePermissions(Путь к пути, установить perms) , который можно легко использовать для установки прав доступа к файлам.
Вот простая программа, которая ясно показывает, почему PosixFilePermission лучше.
Вот простая программа, которая ясно показывает, почему PosixFilePermission лучше.
package com.journaldev.files; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.attribute.PosixFilePermission; import java.util.HashSet; import java.util.Set; public class FilePermissions { /** * File Permissions Java Example using File and PosixFilePermission * @param args * @throws IOException */ public static void main(String[] args) throws IOException { File file = new File("/Users/pankaj/temp.txt"); //set application user permissions to 455 file.setExecutable(false); file.setReadable(false); file.setWritable(true); //change permission to 777 for all the users //no option for group and others file.setExecutable(true, false); file.setReadable(true, false); file.setWritable(true, false); //using PosixFilePermission to set file permissions 777 Setperms = new HashSet (); //add owners permission perms.add(PosixFilePermission.OWNER_READ); perms.add(PosixFilePermission.OWNER_WRITE); perms.add(PosixFilePermission.OWNER_EXECUTE); //add group permissions perms.add(PosixFilePermission.GROUP_READ); perms.add(PosixFilePermission.GROUP_WRITE); perms.add(PosixFilePermission.GROUP_EXECUTE); //add others permissions perms.add(PosixFilePermission.OTHERS_READ); perms.add(PosixFilePermission.OTHERS_WRITE); perms.add(PosixFilePermission.OTHERS_EXECUTE); Files.setPosixFilePermissions(Paths.get("/Users/pankaj/run.sh"), perms); } }
Из приведенного выше примера ясно, что PosixFilePermission предоставляет больше возможностей, а код более удобочитаем. Если вы используете Java 7 или выше, вам следует использовать его для настройки разрешений на файлы в java.