我有一块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");
如何解决此问题?
答案 0 :(得分:1)
您是否尝试过mkdirs命令?它将委托操作系统在您的整个路径中创建所有需要的目录。
File destination = new File("z:\\folder_1\\subfolder_1");
destination.mkdirs();
答案 1 :(得分:1)
尝试在folder2上使用:setReadable()和/或setWritable()。这是控制文件权限的唯一可移植纯java方法。
答案 2 :(得分:0)
我发现这项工作的唯一成功方法是将用户帐户设置为服务器B的管理员并完全控制。