1

我有一段 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");

我该如何解决这个问题?

4

3 回答 3

1

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

File destination = new File("z:\\folder_1\\subfolder_1");
destination.mkdirs();
于 2011-07-09T16:22:39.437 回答
1

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

于 2011-07-09T16:24:09.380 回答
0

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

于 2011-07-11T08:02:22.870 回答