我正在从输入目录中读取文件,修改其中的一些内容并将其写入输出目录。问题是在输出目录中,我是所有文件的所有者。是否有一种方法可以处理这个过程,使输出文件与原始文件以及所有者和组具有完全相同的权限。
谢谢你,
Alex
基于原始文件,您可以知道您需要什么权限。对于新文件,使用file.setReadable(布尔可读)、setWriteable()
、setExecutable()
API将新文件的权限设置为与原始文件的权限完全相同。
编辑:注意。这适用于Java>=7。要设置文件的所有排列(类似于chmod),请移到"文件"。有一个方法setPosixFilePermissions(..)。您需要从java.nio.file.*
导入3个相关的类
我就这么用过…
Set<PosixFilePermission> filePermission = new HashSet<PosixFilePermission>();
// OWNER rwe --- ---
filePermission.add(PosixFilePermission.OWNER_READ);
filePermission.add(PosixFilePermission.OWNER_WRITE);
filePermission.add(PosixFilePermission.OWNER_EXECUTE);
// GROUP --- rwe ---
filePermission.add(PosixFilePermission.GROUP_READ);
filePermission.add(PosixFilePermission.GROUP_WRITE);
filePermission.add(PosixFilePermission.GROUP_EXECUTE);
// GLOBAL --- --- rwe
filePermission.add(PosixFilePermission.OTHERS_READ);
filePermission.add(PosixFilePermission.OTHERS_WRITE);
filePermission.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(Paths.get("{PATH_TO_FILE}"), filePermission);