这个 java.io.File.setWritable()
方法允许您将一个文件设置为可供以独立于平台的方式支持此功能的文件系统上的每个人写入。
https://docs.oracle.com/javase/7/docs/api/java/io/file.html#setwritable(布尔值,%20boolean)
是什么允许在 java.nio.file.Path
反对?
静态法 java.nio.file.Files.setAttribute()
意味着可以设置权限,
但是没有一套明确的参数来模拟 java.io.File.setWritable()
方法。
https://docs.oracle.com/javase/7/docs/api/java/nio/file/files.html#setattribute(java.nio.file.path、%20java.lang.string、%20java.lang.object、%20java.nio.file.linkoption…)
2条答案
按热度按时间dy2hfwbg1#
nio扩展了java的io,但它并不是现有类的完全替代品。这个
java.io.File
类也没有被弃用。为了java.io.File.setWritable()
这里面没有等价物java.nio.file.Files
. 正如前面的回答中已经提到的,您仍然可以将path对象转换为file对象并调用setWritable
.nio引入了文件属性视图的概念,并允许访问例如访问控制列表(acl)和用户定义的文件属性。e、 g.在Windows上
setWritable
仅对只读标志(文件资源管理器中的第一个选项卡)有效,但对ACL无效(请参见文件资源管理器中的“安全”选项卡)。即使你打电话来file.setWritable(false)
所有者仍有写入权限,但由于设置了只读标志,最终无法写入。因为并不是所有的操作系统都是posix兼容的(欢迎redmond;-)并非所有文件属性视图在所有操作系统上都可用。下面的代码或多或少与
java.io.File.setWritable
:所以,如果你只是想改变一个文件的只读标志,我会留下来
File.setWritable
. 它很简单,您不必关心操作系统/支持的文件属性视图。如果需要更多(例如,更改文件的所有者/组或读取/更改ACL),则应选择文件属性视图。y0u0uwnf2#
在路径的关联文件对象上使用“setwritable”: