目标
我希望每当有人在 /opt/file/incoming 目录中上传文件(名称为 Accounts 0998.csv)时。它的权限更改为 chmod 664 即 rw-rw-r 我正在使用 Linux。
我想自动化这个过程,所以我正在编写一个 java 程序,但它的工作
package com.reader.file;
import java.io.File;
import java.io.IOException;
public class GrantPermission
{
public static void main( String[] args )
{
try {
File file = new File("/opt/file/Accounts 0998.csv");
if(file.exists()){
System.out.println("File exists.");
//using PosixFilePermission to set file permissions 664
Set<PosixFilePermission> perms = new
HashSet<PosixFilePermission>();
//add owners permission
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
//add group permissions
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
//add others permissions
perms.add(PosixFilePermission.OTHERS_READ);
Files.setPosixFilePermissions(file.toPath(), perms);
} catch (IOException e) {
e.printStackTrace();
}
}
else{
System.out.println("File does not exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
附加信息
我正在使用 WSO2 ESB,它首先搜索一个文件,然后如果文件存在,那么我想更改它的权限(通过使用 Class mediator,即 JAVA),然后将它移动到另一个目录,但我的目标是将文件权限更改为 rw-rw-r
最佳答案
如果您使用的是 java7 或更高版本,则可以使用 NIO.2。
参见:
How do i programmatically change file permissions?
//if you need rw-rw-r permissions
public void setPermission(File file) throws IOException{
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
Files.setPosixFilePermissions(file.toPath(), perms);
}
关于java - 如何使用JAVA在Linux中更改对传入文件的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48945147/