我正在从输入目录中读取文件,修改其中的一些内容并将其写入输出目录。问题是,在输出目录中,我拥有所有文件。是否有方法对此过程进行处理,以便输出文件与原始文件以及所有者和组具有完全相同的权限。
谢谢,
亚历克斯
发布于 2016-03-21 22:20:08
根据原始文件,您可以知道所需的权限。对于新文件,使用File.setReadable(布尔可读的)、setWriteable()、setExecutable() API设置新文件的权限,使其与原始文件的权限完全相同。
编辑:备注。这是>= 7,要设置一个文件的所有perms (类似于chmod),请转到文件。有一种方法setPosixFilePermissions(.)。您需要从java.nio.file.*导入三个相关的类
我就这么用过.
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);https://stackoverflow.com/questions/36142587
复制相似问题