java - 如何使用JAVA在Linux中更改对传入文件的权限

标签 java linux wso2 file-permissions wso2-esb

目标

我希望每当有人在 /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/

相关文章:

java - 无法使用eclipse打开android模拟器

linux - 使用其他服务器中 createrepo 创建的本地 yum 存储库

WSO2 是联合 IdP

java - 使用 For 循环识别字符串中的数字

java - Android 编程中如何管理事件

linux - 在 Linux 操作系统中,用户空间使用哪个内存区域(Normal 或 Highmem)?

linux - 通过/dev/mem 访问 GPIO 是否更安全?

wso2 - 企业应用中如何用XACML处理深层次粒度化

包含文本和附件的 WSO2 ESB 电子邮件

java - Android ndk log unicode(宽字符)