gpt4 book ai didi

java - 无法通过java代码更改文件夹的权限

转载 作者:行者123 更新时间:2023-12-04 03:14:57 32 4
gpt4 key购买 nike

我创建了一个临时文件夹,然后尝试在我的 Windows 7 机器上更改它的权限。我有管理员权限。

public class FilePermissionExample
{
public static void main( String[] args )
{
try {

File file = File.createTempFile("temp", Long.toString(System.nanoTime()));

file.delete();
file.mkdir();

if(file.exists()){
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
}


file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);

System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());

if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}

} catch (IOException e) {
e.printStackTrace();
}
}
}

输出:
执行是否允许:true
是否允许写入:true
是否允许读取:true
执行是否允许:true
是否允许写入:true
是否允许读取:true
文件已存在。

预期:
执行是否允许:true
是否允许写入:true
是否允许读取:true
执行是否允许:false
是否允许写入:false
是否允许读取:false

我在 Windows 中使用 hiverunner 编写配置单元测试时遇到了类似的问题。任何人都可以提出建议吗?

最佳答案

来自 java.io.File 的 API 文档:

“文件系统可能对实际文件系统对象的某些操作实现限制,例如读取、写入和执行。这些限制统称为访问权限。文件系统可能有多组单个对象的访问权限。例如,一组可能适用于对象的所有者,而另一组可能适用于所有其他用户。对象的访问权限可能会导致此类中的某些方法失败。"

因此您的操作系统不允许更改权限。

关于java - 无法通过java代码更改文件夹的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935829/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com