How to set File Permissions in Java Easily using Java 7 PosixFilePermission
Java File class has the ability to set the file permissions but it’s not versatile. The biggest drawback is that you can divide file permissions into two set of users – owner and everybody else only. You can’t set different file permissions for group and other users.
Java 7 has introduced PosixFilePermission Enum and java.nio.file.Files includes a method setPosixFilePermissions(Path path, Set
Here is a simple program that clearly shows why PosixFilePermission is better.
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
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
//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);
}
}
From above example, it’s clear that PosixFilePermission provides more options and code is more readable. If you are using Java 7, you should use it for setting file permissions in java.
Incoming search terms:
Set<PosixFilePermission>,change the mode of file 777 in java,java posixfilepermission example,java setfile method,set delete permission using java file permission,set permission to 777 using java 5,setposixfilepermissions,setPosixFilePermissions java 7,setting a file as 777 using java code,java file setreadableWho reads this also read:
- How to rename file and move file in Java
- How to create a new File in Java
- Java File Path, Absolute Path and Canonical Path Explained
- How to delete a File or empty directory/folder in Java
- Read File in Java – Line by Line, Read by Number of Bytes, Count of String occurrence in File