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

Entrée/Sortie Java Discussion :

Droit de suppression de fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut Droit de suppression de fichier
    Bonjour,

    J'ai un problème dans un projet que je développe. Ce projet permet d'installer et de désinstaller des plugins. A la désinstallation d'un plugin, je dois donc entre autre supprimer tous les fichiers le concernant.

    Quand l'utilisateur demande à désinstaller un plugin, je voudrai donc vérifier que tous les fichiers soient supprimable avant de commencer la désinstallation (Ce qui n'est pas le cas si le plugin est en cours d'utilisation)...

    Je n'arrive pas à trouver comment faire ça proprement (La méthode canWrite de File permettant de vérifier l'accès en écriture mais pas la suppression).

    Pour le moment j'utilise donc un moyen plutôt "sale" :
    - Je renomme le fichier
    - Je fais une copie de ce fichier ayant le même nom que l'original pour retrouver mon fichier original
    - Je supprime le fichier renommé et je me retrouve donc dans la même configuration qu'au début.

    Si cette procédure de renommage fonctionne, c'est que le fichier peut être supprimé... Quelqu'un connaitrait un moyen de vérifier la même chose sans passer par ce genre de bricolage??

    Mon problème est donc de pouvoir vérifier que tous les fichiers d'un répertoire peuvent être supprimés avant de commencer la suppression.

    Merci pour vos réponses

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    As tu regardé du coté de la classe SecurityManager
    Je pense que sa méthode checkDelete(String file) devrait résoudre ton problème...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut
    Merci pour la réponse !!

    Je viens de regarder checkDelete(String file) qui semble faire la bonne chose en théorie mais j'ai un problème pour l'utiliser

    Je me suis fais ce petit programme de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public static void main(String[] args) {
            SecurityManager manager = new SecurityManager();
    	String nomFichier = "C:\\test\\test.txt";
     
            //teste la possibilité de suppression
    	try{
    		manager.checkDelete(nomFichier);
    		System.out.println("supprimable");
    	}catch(SecurityException e){
    		System.out.println("non supprimable");
    		e.printStackTrace();
    	}
     
    	//tente de supprimer dans tous les cas	
    	if(new File(nomFichier).delete()){
    		System.out.println("supprimé");
    	}else{
    		System.out.println("non supprimé");
    	}
    }
    A l'exécution de ce programme (le fichier test.txt existe bien sûr ^^), je me retrouve avec la console suivante :

    non supprimable
    java.security.AccessControlException: access denied (java.io.FilePermission C:\test\test.txt delete)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkDelete(Unknown Source)
    at tests.TestVerificationRepertoireSupprimable.main(TestVerificationRepertoireSupprimable.java:16)
    supprimé

    l'exception est lancée, signalant que le fichier n'est pas supprimable... par contre, la fonction delete arrive très bien à supprimer le fichier... y a t'il quelque chose que je fais mal??

Discussions similaires

  1. ACL et droit de suppression de fichiers
    Par garulfo2 dans le forum Sécurité
    Réponses: 1
    Dernier message: 11/10/2013, 11h20
  2. [PHP 4] Suppression de fichier/problème de droits
    Par Spyritus dans le forum Langage
    Réponses: 3
    Dernier message: 17/11/2009, 09h21
  3. [Administration] Limiter le Droit de suppression d'un fichier.
    Par babo dans le forum Subversion
    Réponses: 4
    Dernier message: 11/07/2007, 09h57
  4. Auto suppression de fichier
    Par pato dans le forum Langage
    Réponses: 4
    Dernier message: 05/03/2004, 09h09
  5. Suppression de fichiers
    Par wasch dans le forum C++Builder
    Réponses: 6
    Dernier message: 20/11/2003, 16h37

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