首页 > 解决方案 > 使用 JAVA 更改目录内所有文件的权限

问题描述

我想编写一段代码,以便将目录中的所有文件设置为可写(非只读)。我的程序是 JAVA 的,它应该可以在 Windows 和 Linux 上运行。到目前为止,我的方法是遍历目录中包含的所有文件,并为每个文件设置可写权限,使用以下方法:

  static void makeDosFileWritable(Path pathToFile) {
    try {
      Files.setAttribute(pathToFile.toAbsolutePath(), "dos:readonly", false);
       //logs
    } catch (IOException e) {
       //logs
    }
  }


  static void makeUnixFileWritable(Path pathToFile) {
    try {
      Set<PosixFilePermission> ownerWritable = PosixFilePermissions.fromString("rw-rw-rw-");
      Files.setPosixFilePermissions(pathToFile, ownerWritable);
     //logs
    } catch (IOException e) {
     //logs
    }
  }

这工作正常。问题是,在顶层目录中,我也可以有嵌套目录。我想知道如何处理这个问题。

标签: javapathfile-permissions

解决方案


你可以参考这个Github repo - 它有一个用于更改 Windows、*Nix 甚至 MacOs 权限的实现。相关代码可以在这里找到。

代码可能较旧,但是,实现应该仍然有效。


推荐阅读