Перемещенный файл не наследует ACL своего нового каталога после перемещения его из исходного каталога в другой каталог на том же диске на компьютере Windows.
У меня есть сетевой диск с именем «A:»На этом диске у меня есть каталоги с именами «Каталог 1» и «Каталог 2».
A: / Directory 1
A: / Directory 2
Я сейчас перемещаю файлы из
A: / Directory 1 / Папка 1 (ACL все разрешения только для «Группы 1»)
*От 1018 * до
A: / Каталог 2 / Папка 1 / Папка 2 / Папка 1 (ACL все разрешения только для «Группы 2», НЕ для «Группы 1»)
- Я попытался найти решение для переполнения стека и других сайтов.
- Я попытался скопировать файл вместо его перемещения.
- Я попытался использовать ACLкод, предоставляемый Java
- Я попытался изменить настройки Windows, чтобы файлы наследовали ACL своего нового каталога, и подтвердил, что это работаетПосле ручного перемещения файла.
Код, который я сейчас использую:
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, но они показались мне общими, и я не смог понять, как скопировать разрешения из каталога и применить их к целевому файлу.