Java Reference
In-Depth Information
// Print the permissions
System.out.println(rwxFormPermissions);
Updating POSIX file permissions is also easy. You need to get all permissions in a Set of PosixFilePermission
enum constants. To update the POSIX file permissions, call the setPermissions() method of
PosixFileAttributeView , passing the Set of the PosixFilePermission enum constants as an argument. The
following snippet of code shows how to set the POSIX file permissions:
// Get the permission in a string form
String rwxFormPermissions = "rw-r-----";
// Convert the permission in the string form to a Set of PosixFilePermission
Set<PosixFilePermission> permissions = PosixFilePermissions.fromString(rwxFormPermissions);
// Update the permissions
posixView.setPermissions(permissions);
Alternatively, you can also create a Set of PosixFilePermission enum constants directly and set it as the file
permissions, like so:
Set<PosixFilePermission> permissions = EnumSet.of(OWNER_READ, OWNER_WRITE, GROUP_READ);
posixView.setPermissions(permissions);
Listing 10-19 demonstrates how to read and update POSIX file permissions for a file named luci on UNIX-like
platforms. If the file does not exist, the program outputs the stack trace of a NoSuchFileException . If you run the
program on a non-UNIX-like platform, it will print a message that POSIX attribute view is not supported. You may get
a different output when you run this program.
Listing 10-19. Reading and Writing POSIX File Permissions
// PosixPermissionsTest.java
package com.jdojo.nio2;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.EnumSet;
import java.util.Set;
import java.nio.file.attribute.PosixFileAttributeView;
import java.nio.file.attribute.PosixFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import static java.nio.file.attribute.PosixFilePermission.OWNER_READ;
import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
import static java.nio.file.attribute.PosixFilePermission.GROUP_READ;
public class PosixPermissionsTest {
public static void main(String[] args) {
Path path = Paths.get("luci");
PosixFileAttributeView posixView =
Files.getFileAttributeView(path, PosixFileAttributeView.class);
Search WWH ::




Custom Search