一、使用java file类的方法

1. setExecutable设置可执行权限

1) setExecutable(boolean executable)
查看源码:

 public boolean setExecutable(boolean executable) {
    return setExecutable(executable, true);
}

因此,只需要搞懂 setExecutable(boolean executable, boolean ownerOnly)就可以了

2) setExecutable(boolean executable, boolean ownerOnly)
查看源码:

 public boolean setExecutable(boolean executable, boolean ownerOnly) {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.checkWrite(path);
    }
    if (isInvalid()) {
        return false;
    }
    return fs.setPermission(this, FileSystem.ACCESS_EXECUTE, executable, ownerOnly);
}

参数:

  1. executable :设置访问权限,为true时允许执行的操作;false时不允许执行操作
  2. ownerOnly :设置权限控制对象, true–访问权限控制只针对文件的创建者,false–针对所有用户

因此 setExecutable(boolean executable) 为设置文件创建者的文件执行权限,setExecutable(boolean executable, boolean ownerOnly)为设置文件创建者或所有用户的文件执行权限

返回值:

  1. 如果操作成功此方法返回true,否则返回false。
2. setReadable 设置可读权限

1)setReadable(boolean readable)
查看源码:

public boolean setReadable(boolean readable) {
    return setReadable(readable, true);
}

同理,只需要搞懂 setReadable(boolean readable, boolean ownerOnly) 即可
2)setReadable(boolean readable, boolean ownerOnly)
查看源码:

public boolean setReadable(boolean readable, boolean ownerOnly) {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.checkWrite(path);
    }
    if (isInvalid()) {
        return false;
    }
    return fs.setPermission(this, FileSystem.ACCESS_READ, readable, ownerOnly);
}

参数:

  1. readable : 设置文件是否可读,为true文件可读,为false文件不可读
  2. ownerOnly :设置可读权限控制对象, true–可读权限控制只针对文件的创建者,false–针对所有用户

因此 setReadable(boolean readable) 为设置文件创建者的文件可读权限,setReadable(boolean readable, boolean ownerOnly)为设置文件创建者或所有用户的文件可读权限

返回值:

  1. 如果操作成功此方法返回true,否则返回false。
3. setWritable 设置可写权限

1)setWritable(boolean writable)
查看源码:

public boolean setWritable(boolean writable) {
    return setWritable(writable, true);
}

同理,只需要搞懂 setWritable(boolean writable, boolean ownerOnly) 即可

2)setWritable(boolean writable, boolean ownerOnly)
查看源码:

public boolean setWritable(boolean writable, boolean ownerOnly) {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.checkWrite(path);
    }
    if (isInvalid()) {
        return false;
    }
    return fs.setPermission(this, FileSystem.ACCESS_WRITE, writable, ownerOnly);
}

参数:

  1. writable: 设置文件是否可写,为true文件可写,为false文件不可写
  2. ownerOnly :设置可读权限控制对象, true–可读权限控制只针对文件的创建者,false–针对所有用户

因此 setWritable(boolean writable) 为设置文件创建者的文件可写权限,setWritable(boolean writable, boolean ownerOnly)为设置文件创建者或所有用户的文件可写权限

返回值:

  1. 如果操作成功此方法返回true,否则返回false。
4. 示例
try{
	String dcmPath = "文件路径";
	File file = new File(dcmPath);
	//设置可执行权限
	boolean exec= file.setExecutable(true,false);
	//设置可读权限
	boolean read= file.setReadable(true,false);
	//设置可写权限
	boolean write= file.setWritable(true,false);
	// 如果是设置文件输出后的权限,则需要在OutputStream 的write方法后设置
}catch(Exception e){
	log.error( ExceptionUtils.getStackTrace(e));
}

二、使用RunTime.getRuntime().exec() 调用服务器命令脚本

	String dcmPath = "/home/root/test.txt"
	Runtime runtime = Runtime.getRuntime();
	// 执行linux命令 chmod 777 filepath  为文件添加777权限
	runtime.exec(" chmod 777 "+ dcmPath );

注意事项:https://www.cnblogs.com/fclbky/p/6112180.html

Logo

更多推荐