Java 6:创建保留原始权限的文件的修改副本

Java 6: Create a modified copy of file perserving original permission

我正在从输入目录读取文件,修改其中的一些内容并将其写入输出目录。问题是在输出目录中,我是所有文件的所有者。有没有办法对这个过程做些什么,使得输出文件具有与原始文件完全相同的权限以及所有者和组。

谢谢,

亚历克斯

根据原始文件,您可以知道您需要什么权限。对于新文件,fiddle 和 File.setReadable(boolean readable)setWriteable()setExecutable() API 设置新文件的权限完全相同一个用于您的原始文件。

编辑: 笔记。这是 Java >= 7。 要设置文件的所有权限(类似于 chmod),请移至 Files. There's this method 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);