Comment définir rw - r— r— autorisations par programmation?
Je développe une application qui permet de restaurer les applications de données vers /data/data/{packageName}. Après la restauration des fichiers, je suis en train de les permissions rw - r-- r--. Je l'ai mis de cette façon:
public int chmod(File path, int mode) throws Exception {
Class fileUtils = Class.forName("android.os.FileUtils");
Method setPermissions = fileUtils.getMethod("setPermissions",
String.class, int.class, int.class, int.class);
return (Integer) setPermissions.invoke(null, path.getAbsolutePath(),
mode, -1, -1);
}
et de l'appel de chmod(file, 644);
Mais quand j'ai vérifier ces fichiers' autorisations dans l'explorateur de fichiers, il m'indique "--- rwx r-x".
Alors, comment puis-je régler les permissions rw - r-- r--?
- Je pense que vous avez besoin de super-utilisateur l'accès à le faire
- Oui. J'ai déjà SU d'accès. String cmd = "cp-r" + sourceFile.getAbsolutePath() + "/* " + destinationFile.getAbsolutePath() + "/"; de l'Exécution.getRuntime().exec(new String[] { "su", cmd }); chmod(destinationFile, 644);
- Je tiens également à modifier les autorisations d'un fichier, et en cherchant je suis venu à votre question. J'ai essayé le même code, mais je n'ai pas pu trouver le
FileUtils
classe dansandroid.os
paquet. Comment avez-vous utilisé?? Veuillez répondre à ici. - Qu'avez-vous vraiment de la recherche pour? android.os paquet a un fichier avec ce nom. Code Source : grepcode.com/file/repository.grepcode.com/java/ext/...
InformationsquelleAutor Rajkiran | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
La valeur est incorrecte, la bonne est de 420 de 420 décimal est de 644 octal). Alternativement, vous pouvez ajouter l'un des principaux
0
pour en faire un java octal littérale.c'est à dire
Vous devriez être en mesure de définir ces autorisations (rw - r-- r--) sur le fichier à l'aide de:
où
path
est votre Fichier objet.Vous ne devriez pas avoir besoin d'utiliser FileUtils avec la réflexion pour définir des autorisations sur un fichier.
Vous pouvez utiliser les méthodes d'aide à la Fichier classe.
Avec "Fichier", vous pouvez aussi appeler: setReadable(), setWritable(), et setExecutable()