检查其他用户是否具有写入文件的权限

时间:2010-11-18 15:36:54

标签: java windows security permissions io

在安装过程中,我需要检查用户提供的路径是否可写入指定用户。

路径(像\ fileserver \ share这样的UNC路径)可能无法写入正在执行Setup.exe的用户(这是一个仅限Windows的软件),因此我认为How do you check for permissions to write to a directory or file?可能无效对我来说。

我知道在Java7中会有一个新的Filesystem-API,但Java7还没有发布。

修改 用户1 - 运行安装程序 用户2 - 运行已安装的应用程序

如果用户1收到错误“Permission denied”,我仍然不知道,关于用户2.我需要在安装过程中检查其他useccount的权限。

我可以使用net use /user:<user2> <passwd2>,但我不确定,如果我得到了我需要的所有信息。我得到的信息是路径存在,但不是,如果允许用户2写入。

1 个答案:

答案 0 :(得分:0)

在java 7之前,您没有标准方法来检查用户是否可以使用标准库写入java文件。这是因为旧的java io只是功能不够。

例如,如果考虑文件所有者等,File.canWrite()将无法工作....

你可以做的是直接检查,例如,尝试写一个空行。 (这需要考虑你的应用程序,如果你的应用程序只是不在乎最后的空行并自动删除结束空行,那么它的工作原理.....这只是一个例子,你可以得到很多棘手的方法考虑你的应用。