ก่อน Java 6 ไม่มีการสนับสนุนการอัปเดตการอนุญาตไฟล์ที่ระดับ Java คุณจะต้องใช้วิธีการดั้งเดิมของคุณเองหรือโทรRuntime.exec()
ดำเนินการคำสั่งระดับ OS เช่นchmod
เริ่มจาก Java 6 คุณสามารถใช้File.setReadable()/File.setWritable()/File.setExecutable()
เพื่อตั้งค่าสิทธิ์ไฟล์ แต่ไม่ได้จำลองระบบไฟล์ POSIX ซึ่งอนุญาตให้ตั้งค่าสิทธิ์สำหรับผู้ใช้ที่แตกต่างกัน File.setXXX () อนุญาตให้ตั้งค่าสิทธิ์สำหรับเจ้าของและคนอื่น ๆ เท่านั้น
เริ่มจาก Java 7 จะมีการแนะนำสิทธิ์ไฟล์ POSIX คุณสามารถตั้งค่าการอนุญาตไฟล์เช่นเดียวกับที่คุณทำบนระบบ * nix ไวยากรณ์คือ:
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);
วิธีนี้สามารถใช้ได้กับระบบไฟล์ POSIX เท่านั้นซึ่งหมายความว่าคุณไม่สามารถเรียกใช้ในระบบ Windows ได้
สำหรับรายละเอียดเกี่ยวกับการจัดการสิทธิ์ไฟล์แนะนำให้อ่านโพสต์นี้
Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwxr-x---"))