创建文件夹有效,但权限未继承

时间:2011-07-09 16:13:58

标签: java io windows-server-2008 windows-server-2003 folder-permissions

我有一块Java在网络映射驱动器上创建文件夹(Z :) 脚本在服务器A上执行(Windows 2008 R2,以用户帐户“serviceUser”身份运行)并在服务器B上创建文件夹(Windows 2003)

服务器B上的根文件夹(映射为Z :)具有特殊权限,允许“serviceUser”创建,修改,删除,写入等权限设置为继承到子对象,因此在Z中创建文件夹:应该获得与Z:本身相同的权限。

我的代码在Z中创建了2个文件夹:例如:

File destination = new File("z:\\folder_1\\");
File destination = new File("z:\\folder_1\\subfolder_1\\");

文件夹“folder_1”获得了正确的权限,但“subfolder_1”却没有。 创建这些文件夹后,我需要创建一个文件,但由于“subfolder_1”没有获得权限,因此在执行"Access is denied"

时,控制台会报告File fileName = new File("z:\\folder_1\\subfolder_1\\filename.png");

如何解决此问题?

3 个答案:

答案 0 :(得分:1)

您是否尝试过mkdirs命令?它将委托操作系统在您的整个路径中创建所有需要的目录。

File destination = new File("z:\\folder_1\\subfolder_1");
destination.mkdirs();

答案 1 :(得分:1)

尝试在folder2上使用:setReadable()和/或setWritable()。这是控制文件权限的唯一可移植纯java方法。

答案 2 :(得分:0)

我发现这项工作的唯一成功方法是将用户帐户设置为服务器B的管理员并完全控制。