java - 更改文件夹中文件的文件权限

标签 java linux file-io posix file-permissions

我正在尝试更改文件夹以及文件夹中所有文件的文件权限。下面的代码适用于该文件夹。我可以设置任何参数来更改文件夹中文件的权限吗?

private void setPOSIXFilePermissions(String filePath) {
        Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
        perms.add(PosixFilePermission.OWNER_READ);
        perms.add(PosixFilePermission.OWNER_WRITE);
        perms.add(PosixFilePermission.OWNER_EXECUTE);
        perms.add(PosixFilePermission.GROUP_READ);
        perms.add(PosixFilePermission.GROUP_EXECUTE);
        perms.add(PosixFilePermission.OTHERS_READ);
        perms.add(PosixFilePermission.OTHERS_EXECUTE);

        try {
            java.nio.file.Files.setPosixFilePermissions(Paths.get(filePath), perms);
        } catch (IOException e) {
            LOGGER.error("Failed to set file permission.", e);
        }
    }

最佳答案

尝试这个:

// Use:  - recursive = true to change permissions for all sub directories and sub files
//       - recursive = false for only one folder and its sub files.

public static boolean givePerms(File f, Set<PosixFilePermission> perms, boolean recursive)
{
    boolean success = givePerm(f, perms);
    if (f.isDirectory() && recursive)
    {
        File[] files = f.listFiles();
        for (File file : files)
        {
            if (!givePerms(file, perms, recursive)) success = false;
        }
    }
    return success;
}

关于java - 更改文件夹中文件的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47852033/

相关文章:

c - 用`scanf()`读取逗号分隔的输入

java - 在生产与开发中使用特定的 xml 文件

java - 电报机器人 java : inline url button does not create an update and thus no callback data to respond on

java - 使用 ffmpeg android 在视频上添加自定义日期

linux - docker镜像的环境变量写在哪里?

android - 如何将数据写入文件并从应用程序外部访问它(没有 SD 卡)?

c# - WinRT 记录到文件

java - 接口(interface)和类型转换

java - 为什么我得到的 char 数组为 "illegal start of expression",该方法为 "class, interface, or enum expected"?

linux - echo 正在运行的终端类型