Trước Java 6, không có hỗ trợ cập nhật quyền tệp ở cấp Java. Bạn phải triển khai phương thức gốc của riêng mình hoặc gọi Runtime.exec()
để thực thi lệnh mức hệ điều hành 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 đối với tệp. Nhưng nó không mô phỏng hệ thống tệp POSIX cho phép thiết lập quyền cho người dùng khác nhau. File.setXXX() chỉ cho phép thiết lập quyền cho chủ sở hữu và mọi người khác.
Bắt đầu từ Java 7, quyền 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 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ý quyền của tệp, khuyên bạn nên đọc this post.
chọn này như tôi không có khả năng sử dụng câu trả lời của Marty Lamb. –
Tôi nghiêm túc không thể tin rằng đã hơn 6 năm kể từ khi họ bắt đầu làm việc trên NIO.2 và nó vẫn không có trong JRE vận chuyển. – clee
Vâng, đã lâu rồi. – erickson