Package java.nio.file.attribute

Examples of java.nio.file.attribute.PosixFileAttributeView


*/
final class FilePermissionServiceImpl implements FilePermissionService {
    public boolean limitAccessToOwner(File file) throws IOException {
        Path fileP = file.toPath();

        PosixFileAttributeView posixView = Files.getFileAttributeView(
                fileP, PosixFileAttributeView.class);
        if (posixView != null) {

            // This is a POSIX file system. Usually,
            // FileUtil.limitAccessToOwnerViaFile() will successfully set
            // the permissions on such file systems using the java.io.File
            // class, so we don't get here. If, however, that approach failed,
            // we try again here using a PosixFileAttributeView. That's likely
            // to fail too, but at least now we will get an IOException that
            // explains why it failed.

            EnumSet<PosixFilePermission> perms = EnumSet.of(
                    PosixFilePermission.OWNER_READ,
                    PosixFilePermission.OWNER_WRITE);

            if (file.isDirectory()) {
                perms.add(PosixFilePermission.OWNER_EXECUTE);
            }

            posixView.setPermissions(perms);

            return true;
        }

        AclFileAttributeView aclView = Files.getFileAttributeView(
View Full Code Here


        try {
          String[] values = attributes.get(type);

          switch (type) {
          case Item.ATTRIBUTE_POSIX:
            PosixFileAttributeView posixView = Files.getFileAttributeView(path, PosixFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
            if (posixView != null) {
              group = lookupService.lookupPrincipalByGroupName(values[0]);
              posixView.setGroup(group);
              principal = lookupService.lookupPrincipalByName(values[1]);
              posixView.setOwner(principal);
              if (values.length > 2)
                posixView.setPermissions(toPermissions(Integer.parseInt(values[2])));
            } else {
              String msg = "Can't restore 'posix' permissions on '" + item.getPath() + "'. They are not supported.";
              if (permissionType.equals(PermissionType.TRY))
                LOGGER.log(Level.WARNING, msg);
              else
View Full Code Here

        type = ItemType.UNKNOWN;
      }

      Map<String, String[]> attributes = new HashMap<String, String[]>();

      PosixFileAttributeView posixView = Files.getFileAttributeView(path, PosixFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
      if (posixView != null) {
        final PosixFileAttributes attr = posixView.readAttributes();
        if (type.equals(ItemType.LINK)) {
          attributes.put(Item.ATTRIBUTE_POSIX, new String[] { attr.group().getName(), attr.owner().getName() });
        } else {
          attributes.put(Item.ATTRIBUTE_POSIX, new String[] { attr.group().getName(), attr.owner().getName(), fromPermissions(attr.permissions()).toString() });
        }
View Full Code Here

    public static final FileTime getBirthtimeWithNIO(String pathString) {
        // FIXME: birthtime is in stat, so we should use that if platform supports it (#2152)
        // TODO: This requires Java 7 APIs and may not work on Android
        Path path = Paths.get(pathString);
        PosixFileAttributeView view = Files.getFileAttributeView(path, PosixFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
        try {
            if (view != null) {
                return view.readAttributes().creationTime();
            }
        } catch (IOException ioe) {
            // ignore, just fall back on ctime
        }
        return null;
View Full Code Here

  @Test
  public void testView() throws IOException {
    file.setAttribute("owner", "owner", createUserPrincipal("user"));

    PosixFileAttributeView view = provider.view(fileLookup(),
        ImmutableMap.of(
            "basic", new BasicAttributeProvider().view(fileLookup(), NO_INHERITED_VIEWS),
            "owner", new OwnerAttributeProvider().view(fileLookup(), NO_INHERITED_VIEWS)));
    assertNotNull(view);

    assertThat(view.name()).isEqualTo("posix");
    assertThat(view.getOwner()).isEqualTo(createUserPrincipal("user"));

    PosixFileAttributes attrs = view.readAttributes();
    assertThat(attrs.fileKey()).isEqualTo(0);
    assertThat(attrs.owner()).isEqualTo(createUserPrincipal("user"));
    assertThat(attrs.group()).isEqualTo(createGroupPrincipal("group"));
    assertThat(attrs.permissions()).isEqualTo(PosixFilePermissions.fromString("rw-r--r--"));

    view.setOwner(createUserPrincipal("root"));
    assertThat(view.getOwner()).isEqualTo(createUserPrincipal("root"));
    assertThat(file.getAttribute("owner", "owner")).isEqualTo(createUserPrincipal("root"));

    view.setGroup(createGroupPrincipal("root"));
    assertThat(view.readAttributes().group()).isEqualTo(createGroupPrincipal("root"));
    assertThat(file.getAttribute("posix", "group")).isEqualTo(createGroupPrincipal("root"));

    view.setPermissions(PosixFilePermissions.fromString("rwx------"));
    assertThat(view.readAttributes().permissions()).isEqualTo(
        PosixFilePermissions.fromString("rwx------"));
    assertThat(file.getAttribute("posix", "permissions")).isEqualTo(
        PosixFilePermissions.fromString("rwx------"));
  }
View Full Code Here

        try {
          final UserPrincipal userPrincipal = user == null ? null : service.lookupPrincipalByName(user);
          final GroupPrincipal groupPrincipal = group == null ? null : service.lookupPrincipalByGroupName(group);
          if (groupPrincipal != null) {
            PosixFileAttributeView view = Files.getFileAttributeView(target, PosixFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
            if (view == null) {
              throw new FileSystemException("Change group of file not supported");
            }
            view.setGroup(groupPrincipal);

          }
          if (userPrincipal != null) {
            Files.setOwner(target, userPrincipal);
          }
View Full Code Here

        final PosixFileAttributes posixFileAttributes = Files.readAttributes(file.toPath(), PosixFileAttributes.class);
        return convertToInt(posixFileAttributes.permissions());
    }

    public void chmod(File f, int mode) throws IOException {
        PosixFileAttributeView fileAttributeView = Files.getFileAttributeView(f.toPath(), PosixFileAttributeView.class);
        fileAttributeView.setPermissions(convertToPermissionsSet(mode));
    }
View Full Code Here

TOP

Related Classes of java.nio.file.attribute.PosixFileAttributeView

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.