检查java中不存在的文件的权限

时间:2012-02-01 21:34:43

标签: java file permissions

我想做类似的事情:

if (!file.canWrite())
  throw Exception("Permission denied");
file.mkdirs();

但是,我无法这样做,因为canWrite仅适用于已存在的文件。有没有办法告诉我是否能够写入文件,如果它存在?


编辑:谢谢,我知道我可以检查文件是否存在。正如那些阅读第三行代码的人会意识到的那样,我的问题是如果mkdirs无法创建目录,false将只返回mkdirs - 无法解释创建失败的原因。 / p>

此外,while(file.hasParent()){ file = file.parent(); if (!file.canWrite()) throw (..); } 将创建任意嵌套的文件。所以我需要这样的东西:

{{1}}

保罗指出,我也需要知道umask。

3 个答案:

答案 0 :(得分:2)

做同样的事情,但在目录上。目录写入权限指示谁可以和不可以将文件写入该目录。

答案 1 :(得分:2)

您可以先检查文件是否存在:

boolean exists = file.exists();

答案 2 :(得分:1)

您无法测试不存在的内容的权限。但是,您可以进行测试以查看该项是否存在,如果存在,则检查权限。