集册 Java实例教程 管理ACL文件权限

管理ACL文件权限

欢马劈雪     最近更新时间:2020-01-02 10:19:05

549
管理ACL文件权限

import java.nio.file.Files;//来 自 NowJava.com

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.attribute.AclEntry;

import java.nio.file.attribute.AclEntryFlag;

import java.nio.file.attribute.AclEntryPermission;

import java.nio.file.attribute.AclFileAttributeView;

import java.util.List;

import java.util.Set;


public class Main {

  public static void main(String[] args) throws Exception {

    Path path = Paths.get("C:/home/docs/users.txt");

    AclFileAttributeView view = Files.getFileAttributeView(path,

        AclFileAttributeView.class);

    List<AclEntry> aclEntryList = view.getAcl();

    displayAclEntries(aclEntryList);

  }


  private static void displayAclEntries(List<AclEntry> aclEntryList) {

    System.out.println("ACL Entry List size: " + aclEntryList.size());

    for (AclEntry entry : aclEntryList) {// from nowjava - 时代Java

      System.out.println("User Principal Name: " + entry.principal().getName());

      System.out.println("ACL Entry Type: " + entry.type());

      displayEntryFlags(entry.flags());

      displayPermissions(entry.permissions());

      System.out.println();

    }

  }


  private static void displayPermissions(Set<AclEntryPermission> permissionSet) {

    if (permissionSet.isEmpty()) {

      System.out.println("No Permissions present");

    } else {

      System.out.println("Permissions");

      for (AclEntryPermission permission : permissionSet) {

        System.out.print(permission.name() + " ");

      }

      System.out.println();

    }

  }


  private static void displayEntryFlags(Set<
展开阅读全文