на основе исходного файла, вы можете знать, какие разрешения вам нужно. Для нового файла скрутитесь с File.setReadable(boolean readable), setWriteable()
, setExecutable()
API, чтобы установить разрешение для новых файлов таким же, как и для исходного файла.
EDIT: ПРИМЕЧАНИЕ. Это для Java> = 7. Чтобы установить все perms для файла (сродни chmod), перейдите к Files. Есть этот метод setPosixFilePermissions(..). Вам нужно будет импортировать 3 соответствующие классы от java.nio.file.*
Я использовал это как так ...
Set<PosixFilePermission> filePermission = new HashSet<PosixFilePermission>();
// OWNER rwe --- ---
filePermission.add(PosixFilePermission.OWNER_READ);
filePermission.add(PosixFilePermission.OWNER_WRITE);
filePermission.add(PosixFilePermission.OWNER_EXECUTE);
// GROUP --- rwe ---
filePermission.add(PosixFilePermission.GROUP_READ);
filePermission.add(PosixFilePermission.GROUP_WRITE);
filePermission.add(PosixFilePermission.GROUP_EXECUTE);
// GLOBAL --- --- rwe
filePermission.add(PosixFilePermission.OTHERS_READ);
filePermission.add(PosixFilePermission.OTHERS_WRITE);
filePermission.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(Paths.get("{PATH_TO_FILE}"), filePermission);
Я не думаю, что это будет работать. согласно документации setReadable - это «Метод удобства для установки разрешения на чтение владельца для этого абстрактного пути». Он не обрабатывает групповые и другие разрешения. – Alex
Разве это не то, что я сказал? Вам нужны все 3 метода для установки разрешений, а не только один. Пожалуйста, попробуйте. –
Я не уверен, что я к тебе. 3 метода чтения/записи и выполнения? как насчет разрешения для группы и других? Например, для выполнения прав из документации: «Параметры: исполняемый - если true, устанавливает разрешения доступа, чтобы разрешить выполнение операций, если false, чтобы запретить выполнение операцийownerOnly-If true, разрешение выполнения применяется только к разрешению на выполнение владельца, в противном случае оно применяется для всех. Если базовая файловая система не может отличить разрешение на исполнение владельца от прав других, тогда разрешение будет применяться ко всем, независимо от этого значения ». – Alex