Basé sur le fichier d'origine, vous pouvez savoir ce que les autorisations dont vous avez besoin. Pour le nouveau fichier, tripoter avec File.setReadable(boolean readable), setWriteable()
, setExecutable()
API pour définir la permission pour les nouveaux fichiers à être exactement le même que celui de votre fichier d'origine.
EDIT: REMARQUE. C'est pour Java> = Pour définir toutes les permanentes pour un fichier (semblable à chmod), passez à Files. Il y a cette méthode setPosixFilePermissions(..). Vous devez importer les 3 classes appropriées de java.nio.file.*
Je l'ai utilisé comme si ...
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);
Je ne pense pas que cela fonctionnera. selon la documentation, setReadable est "Une méthode pratique pour définir l'autorisation de lecture du propriétaire pour ce chemin d'accès abstrait." Il ne gère pas les autorisations de groupe et autres. – Alex
N'est-ce pas ce que j'ai dit? Vous avez besoin des 3 méthodes pour définir les autorisations, pas une seule. S'il vous plaît essayez-le. –
Je ne suis pas sûr de vous avoir. 3 méthodes pour lire/écrire et exécuter? Qu'en est-il de la permission pour le groupe et les autres? Par exemple pour les droits d'exécution de la documentation: "Paramètres: exécutable - Si vrai, définit l'autorisation d'accès pour permettre les opérations d'exécution, si faux pour interdire l'exécution de operationsownerOnly - Si vrai, l'autorisation d'exécution s'applique uniquement à l'autorisation d'exécution du propriétaire. Si le système de fichiers sous-jacent ne peut pas distinguer l'autorisation d'exécution du propriétaire de celle des autres, alors l'autorisation s'appliquera à tout le monde, indépendamment de cette valeur. " – Alex