在将移动文件从原始目录移动到Windows计算机上同一驱动器上的另一个目录后,移动的文件不会继承其新目录的ACL。
我有一个名为“ A:”的网络磁盘,在该磁盘中,我有一个名为“目录1”和“目录2”的目录。
A:/目录1
A:/目录2
我现在正在从中移动文件
A:/目录1 /文件夹1 (ACL所有权限仅适用于“组1”)
到
A:/目录2 /文件夹1 /文件夹2 /文件夹1 (ACL所有权限仅适用于“组2”,不适用于“组1”)
我当前使用的代码:
Files.move(pdfFile.toPath(), Paths.get(newFileWithoutExtension + ".pdf"), StandardCopyOption.REPLACE_EXISTING);
Files.move(txtFile.toPath(), Paths.get(newFileWithoutExtension + ".txt"), StandardCopyOption.REPLACE_EXISTING);
然后希望复制可能会触发ACL继承...
Files.copy(newPDfFile.toPath(), newPDfFile.toPath());
Files.copy(newTXTFile.toPath(), newTXTFile.toPath());
我希望在移动文件后,它只会获得该目标目录的新权限,因为“组1”中的文件将失去对该文件的所有权限,而“组2”中的文件将获得该文件的权限。
实际上,“第2组”现在在其自己的文件夹中有一个文件,可以访问,其中充满了无法打开的文件,因为这些文件仍设置为仅由“第1组”打开。
如何通过Java实现这一目标?我尝试研究ACL方法,但这些方法似乎是通用方法,我无法弄清楚如何从目录复制权限并将其应用于目标文件。