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

How to give permission 700 and 770 to file & folder using java

我想使用 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);

但这也不符合预期。我们有什么可以设置这些权限的东西吗?

试试

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

否则你可以在下面查看

How do i programmatically change file permissions?

如果您想授予文件 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);

Note : You have to create the directory before executing given command then only it will work otherwise directory will be created with default permissions.

先创建目录然后就可以使用

PosixFilePermission API introduced in Java 1.7.

`