如何将权限700和770授予文件&使用java的文件夹

时间:2015-08-12 10:52:18

标签: java permissions chmod

我想使用java给chmod 700一个文件的权限。

我使用的代码

Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
    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);

Path FilePathObject = Paths.get(fileDir.toString(),"fileRun.sh");
Files.setPosixFilePermissions(FilePathObject, perms);

但它没有正确设置权限 -

drwxrwsr-x   4 user group       94 Aug 12 05:45 scriptconfig

我也试过这段代码来设置700权限 -

    txtFilePath.toFile().setExecutable(false,true);
    txtFilePath.toFile().setReadable(false, true);
    txtFilePath.toFile().setWritable(false,true);

但这也不符合预期。我们是否有任何可以设置这些权限的东西。

2 个答案:

答案 0 :(得分:1)

只需尝试

txtFilePath.toFile().setExecutable(true);
txtFilePath.toFile().setReadable(true);
txtFilePath.toFile().setWritable(true);

否则你可以查看下面的

How do i programmatically change file permissions?

答案 1 :(得分:-1)

如果您想为文件授予770权限,此代码将正常工作 -

Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
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);

Path FilePathObject = Paths.get(fileDir.toString(),"fileRun.sh");
Files.setPosixFilePermissions(FilePathObject, perms);
  

注意:您必须在执行给定之前创建目录   命令然后只有它将工作否则将创建目录   具有默认权限。

首先创建目录,然后使用

  

Java 1.7中引入的PosixFilePermission API。

`