检查java中不存在的文件的权限
我想做一些类似的事情:检查java中不存在的文件的权限,java,file,permissions,Java,File,Permissions,我想做一些类似的事情: if (!file.canWrite()) throw Exception("Permission denied"); file.mkdirs(); while(file.hasParent()){ file = file.parent(); if (!file.canWrite()) throw (..); } 但是,我不能这样做,因为canWrite只适用于已经存在的文件。有没有办法判断我是否能够写入一个文件,如果它存在的话 编辑:谢谢,我意识到我可
if (!file.canWrite())
throw Exception("Permission denied");
file.mkdirs();
while(file.hasParent()){
file = file.parent();
if (!file.canWrite()) throw (..);
}
但是,我不能这样做,因为canWrite
只适用于已经存在的文件。有没有办法判断我是否能够写入一个文件,如果它存在的话
编辑:谢谢,我意识到我可以检查文件是否存在。阅读第三行代码的人会意识到,我的问题是,
mkdirs
如果无法创建目录,只会返回false
——没有解释创建失败的原因
此外,mkdirs
将创建任意深度嵌套的文件。所以我需要像这样的东西:
if (!file.canWrite())
throw Exception("Permission denied");
file.mkdirs();
while(file.hasParent()){
file = file.parent();
if (!file.canWrite()) throw (..);
}
正如保罗指出的,我也需要了解乌玛斯克 执行相同的操作,但改为在目录上执行。目录写入权限决定了谁可以和谁不能将文件写入该目录 执行相同的操作,但改为在目录上执行。目录写入权限决定了谁可以和谁不能将文件写入该目录 您可以首先检查文件是否存在:
boolean exists = file.exists();
您可以首先检查文件是否存在:
boolean exists = file.exists();
无法对不存在的内容测试权限。但是,您可以进行测试以查看该项是否存在,如果存在,则检查权限 无法对不存在的内容测试权限。但是,您可以进行测试以查看该项是否存在,如果存在,则检查权限 <代码>有没有一种方法来判断我是否能够写入文件,如果它存在的话?< /代码>我不这么认为……考虑检查目录的权限。检查目录;这就是写权限的定义,不是吗?否则不会,因为文件可以使用自己的权限创建。除了目录上的权限外,您还需要知道umask。我不认为有一个简单的方法来做这件事。布莱恩:请先查一下我说的荒谬……<代码>有没有办法告诉我,如果文件存在,我能不能写到文件?< /代码>我不这么认为……考虑检查目录的权限。检查目录;这就是写权限的定义,不是吗?否则不会,因为文件可以使用自己的权限创建。除了目录上的权限外,您还需要知道umask。我不认为有什么简单的方法可以做到这一点。@BrianRoach:请在说我荒谬之前先查一下……如果它的直接父目录也不存在呢
mkdirs
允许对不存在的目录进行任意嵌套。但是您可以拥有与目录权限不同的文件权限。@Brian-要实现这一点,文件必须存在,而这不是他所要求的。。。虽然它现在开始接近荒谬。@Xodarap-mkdir
不是魔法,而是代码。将类似于/first/second/third
的内容拆分并检查每个内容以查看其是否存在,并在权限允许时创建所需内容。如果它的直接父目录也不存在该怎么办mkdirs
允许对不存在的目录进行任意嵌套。但是您可以拥有与目录权限不同的文件权限。@Brian-要实现这一点,文件必须存在,而这不是他所要求的。。。虽然它现在开始接近荒谬。@Xodarap-mkdir
不是魔法,而是代码。将类似于/first/second/third
的内容分开并检查每个内容以查看其是否存在的代码,在权限允许时创建所需的内容。