【发布时间】:2020-12-26 02:14:09
【问题描述】:
我想编写一段代码,以便将目录中的所有文件设置为可写(非只读)。 我的程序是 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
}
}
这很好用。问题是,在顶级目录中,我也可以有嵌套目录。我想知道如何处理。
- 是否应该递归遍历每个(子)目录并更改每个文件的权限?
- 或者,是否有办法以编程方式 (JAVA) 仅在顶级目录级别更改权限,并且该设置自动应用于目录及其子目录中包含的所有文件?
【问题讨论】:
标签: java path file-permissions