IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Changer les droits d'un fichier en java multiplateforme


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut Changer les droits d'un fichier en java multiplateforme
    Bonjour tout le monde,

    je suis en train de developpez une application pour mon stage, et je dois pouvoir modifier les droits d'acces à un fichier à la fois sous windows, unix et openVms.

    j'ai trouve une solution, mais je la trouve vraiment moche...je m'explique:
    ->test de l'OS
    -> en fonction de chaque OS, executer une commande du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Runtime runtime = Runtime.getRunTime();
    //pour windows
    runtime.exec(new String[] {"cacls.exe", "file name", "permission"});
    //pour unix
    runtime.exec(new String[] {"chmod".....})
    //pour openVms
    runtime.exec(new String[] {"SET SECURITY/PROTECTION=("user","perm") file.ext");
    existe il une classe qui gere ca?une api? ou un technique un peu plus propre?

    merci d'avance pour vos reponses

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Je ne suis pas sûr de saisir ce que tu veux faire ... Mais dans la classe File, tu as setReadable, setWritable et setExecutable ...

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    C'est possible en standard à partir de Java 6 avec la classe File avec les méthodes setReadable(), setWritable() et setExecutable(). Par contre c'est limité aux droits de l'utilisateur courant ou de "tout le monde" (si cette notion existe sur l'OS bien sûr).

    a++

    [edit] grillé

  4. #4
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    oui je peut le mettre en setreadable mais pour faire la manip inverse?
    car en gros j'ai mon fichier, qui n'appartient pas a mon groupe (mon programme tourne sous un compte x)

    je change les droits d'ecriture sur le fichier pour que mon prog puisse y acceder
    je traite mon fichier
    je dois rendre les droits d'origine ensuite


    c'est donc plus la manip inverse qui me pose probleme

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Tu peux utiliser canRead(), canWrite() et canExecute() pour vérifier les droits avant de les changer...

    a++

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Citation Envoyé par titoun256
    oui je peut le mettre en setreadable mais pour faire la manip inverse?
    car en gros j'ai mon fichier, qui n'appartient pas a mon groupe (mon programme tourne sous un compte x)

    je change les droits d'ecriture sur le fichier pour que mon prog puisse y acceder
    je traite mon fichier
    je dois rendre les droits d'origine ensuite


    c'est donc plus la manip inverse qui me pose probleme

    Les méthodes que je t'ai indiquées prennent un booléen en paramètre.. Je ne vois donc pas le problème ...

  7. #7
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    ok je vais test tout ca

    merci bien pour vos reponses

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je fais ressortir ce vieux thread car j'ai ce genre de problème ... mais je dois travailler avec java 1.5.

    Pour faire court, mon programme java génère un script shell "monScript.sh" et l'exécute ... sauf qu'il ne peut pas parce que le script en question n'a pas les droits d'exécution.

    Quand je lui demande de faire un pauvre chmod il me sort une erreur toute vilaine :
    cannot run program "chmod 755 monScript.sh".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // (...) un FileWriter génère monScript.sh
    final String[] commande = new String[] {
    			"chmod 755 monScript.sh",
    			"monScript.sh"};
     
    final Process process = Runtime.getRuntime().exec(commande);
    Une idée ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer les droits sur le fichier Windows
    Par allouchi dans le forum Sécurité
    Réponses: 3
    Dernier message: 05/01/2013, 20h32
  2. Changer les droits d'un fichier selon l'utilisateur windows
    Par Leniouns dans le forum Général Java
    Réponses: 2
    Dernier message: 19/01/2012, 15h56
  3. Changer les droits d'un fichier
    Par jojodu31 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/06/2011, 16h32
  4. Changer les droits d'un fichier sous windows
    Par lnikolanta dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 26/09/2005, 18h03
  5. Changer les droits d'un fichier downloadé
    Par aergil dans le forum ASP
    Réponses: 5
    Dernier message: 20/05/2005, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo