2013-02-25 3 views
0

J'ai créé un répertoire sur Environnement.getExternalStorage() appelé '/ Mes sites Web'. Lorsque l'application démarre, elle charge le contenu des répertoires et des sous-répertoires dans une liste. J'ai un bouton pour aller dans les répertoires parents, mais je ne veux pas que l'utilisateur dépasse le répertoire racine/Mes sites Web.Comment verrouiller l'utilisateur dans le répertoire personnel

Voici ce que j'ai essayé:

private void upOneLevel(){ 
       if(this.currentDirectory.getParent() != null || this.currentDirectory.getParent() != Environment.getExternalStorageDirectory().getPath() + "My Webs") 
         this.browseTo(this.currentDirectory.getParentFile()); 
     } 

    private void browseTo(final File aDirectory){ 
      // On relative we display the full path in the title. 
      if(this.displayMode == DISPLAYMODE.RELATIVE) 
        this.setTitle(aDirectory.getAbsolutePath() + " :: " + 
            getString(R.string.app_name)); 
      if (aDirectory.isDirectory()){ 
        this.currentDirectory = aDirectory; 
        fill(aDirectory.listFiles()); 
      }else{ 
        openFile(aDirectory); 
      } 
    } 
+0

Hi! Bienvenue à StackOverflow! StackOverflow est pour la programmation des questions, et ce n'est pas une question. Si la question est "comment puis-je faire ceci", désactivez votre "bouton pour aller aux répertoires parent" quand vous êtes en haut de votre arbre désiré. – CommonsWare

Répondre

1

Votre problème est ici:

this.currentDirectory.getParent() != Environment.getExternalStorageDirectory().getPath() + "My Webs" 

Ce n'est pas comment vous comparez des chaînes en Java. Au lieu de cela, utilisez equals() tels que:

!this.currentDirectory.getParent().equals(Environment.getExternalStorageDirectory().getPath() + "My Webs") 
+0

Je l'ai déjà fait :) Toujours oublier == est uniquement pour les valeurs numériques. – RapsFan1981

Questions connexes