【发布时间】:2019-01-16 22:06:33
【问题描述】:
我一直在努力弄清楚如何在 Windows 上使用以下方法创建没有只读属性的目录:
Files.createDirectory(path, attrs);
attrs 属性对我来说不清楚,我能找到的唯一示例是使用 POSIX 标准的示例:
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
Files.createDirectory(file, attr);
我想知道是否有办法为 Windows 系统创建 FileAttribute 以取消设置 ReadOnly 属性。 p>
现在我只创建目录,不关注attrs 参数,并在创建目录后编辑属性。
谢谢
【问题讨论】:
-
如果您的文件系统支持/使用 ACL,请查看
AclFileAttributeView和相关类。我对此了解不多,但也许你会找到你要找的东西。在类 javadoc 的底部,它谈到在FileAttribute中使用AclEntry对象。 -
仅供参考,在目录上设置 readonly 属性只能防止空目录被删除,而不是目录的内容。所以它实际上并没有创建一个“只读”目录。这与某些 Unix 系统(如 Linux 和 BSD)支持的不可变文件属性/标志形成对比,后者确实作用于目录的内容。
标签: java windows directory nio file-permissions