有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用JAVA在linux中更改传入文件的权限

目标

我希望无论何时有人上传/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 it首先搜索一个文件,然后如果文件存在,那么我想更改其权限(通过使用类中介,即JAVA),然后将其移动到另一个目录,但我的目标是将文件权限更改为rw-rw-r


共 (1) 个答案

  1. # 1 楼答案

    您可以使用NIO。2如果您使用的是java7或更高版本

    见:

    How do i programmatically change file permissions?

    &13; 第13部分,;
    //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);
    }
    和#13;
    和#13;