在Java中设置FilePermissions

时间:2014-05-15 12:15:00

标签: java file file-permissions

在我的程序中,我想创建一些临时目录,即Temp1和Temp2。

我目前正在使用Mac,我选择创建这些目录的地方为

  

/ Users / your_account_username / Library / Application Support

此目录具有以下文件权限

> drwx------+  27 ib-mac-1  staff   918 May  7 19:01 Application Support

当我创建Temp1时,我使用Java File API设置读取,写入和执行权限。

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

不知何故,这不能帮助我将rwx应用于目录,其下创建的目录/文件只采用drwxr-xr-x

2 个答案:

答案 0 :(得分:2)

File.setExecutable(boolean)File.setReadable(boolean)File.setWritable(boolean)仅设置所有者权限。

作为schmop says,有一些变体可以表明您希望为每个人设置权限(file.setReadable(true, false)等)。

但是,如果您想要精确控制POSIX文件权限(例如,设置不同的其他权限和组权限),最简单的解决方案是使用Java 7. Java 7添加了Path接口和{{1 }和Paths类作为Files的替代。它提供了方法Files.setPosixFilePermissions,它可以精确地为您提供所需的文件权限。

答案 1 :(得分:2)

使用

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

为所有用户设置。 提供Java 6(至少)。