Trước Java 6, không có hỗ trợ cập nhật quyền truy cập tệp ở cấp Java. Bạn phải thực hiện phương thức riêng của mình hoặc gọi Runtime.exec()
để thực thi lệnh cấp OS, chẳng hạn như chmod .
Bắt đầu từ Java 6, bạn có thể sử dụng File.setReadable()/File.setWritable()/File.setExecutable()
để đặt quyền truy cập tệp. Nhưng nó không mô phỏng hệ thống tệp POSIX cho phép đặt quyền cho những người dùng khác nhau. File.setXXX () chỉ cho phép đặt quyền cho chủ sở hữu và mọi người khác.
Bắt đầu từ Java 7, quyền truy cập tệp POSIX được giới thiệu. Bạn có thể đặt quyền truy cập tệp như những gì bạn đã thực hiện trên các hệ thống * nix. Cú pháp là:
File file = new File("file4.txt");
file.createNewFile();
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
Files.setPosixFilePermissions(file.toPath(), perms);
Phương pháp này chỉ có thể được sử dụng trên hệ thống tệp POSIX, điều này có nghĩa là bạn không thể gọi nó trên hệ thống Windows.
Để biết chi tiết về quản lý cấp phép tập tin, khuyên bạn nên đọc bài viết này .
Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwxr-x---"))