Partage
  • Partager sur Facebook
  • Partager sur Twitter

création de dossier

Sujet résolu
22 août 2019 à 17:39:18

Salut,


Comment on peut creer un dossier dans interne storage et externe storage et savoir le nom de fichiers dans mon dossier 



Merci d'avance.



  • Partager sur Facebook
  • Partager sur Twitter
23 août 2019 à 21:11:32

Bonjour 

Ajoute la permission suivante dans ton fichier Manifeste

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

La permission  " <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />" est une permission dangereuse sur Android, c'est à dire avant de pouvoir créer un dossier ou fichier sur le périphérique d'un utilisateur à partir de la version 6 d'Android, tu dois lui demander la permission.

Pour demander facilement une permission sur Android à un utilisateur sans écrire trop de ligne de code,tu peux utiliser une librairie comme Dexter.Il existe  d'autres librairies pour demander facilement une permission à un utilisateur sur Android.Dexter est assez cool.Voici le lien de Dexter sur Github

Ou tu peux directement insérer cette dépendance dans ton fichier gradle 

implementation ('com.karumi:dexter:5.0.0')

Puis synchronise ton projet.

Maintenant des que l'utilisateur clique sur le bouton pour créer le fichier ou le dossier tu demande d'abord ta permission comme ça

Dexter.withActivity(this)
                        .withPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        .withListener(new PermissionListener() {
                            @Override
                            public void onPermissionGranted(PermissionGrantedResponse response) {

                                onCreateFile(nomDossier);
                            }

                            @Override
                            public void onPermissionDenied(PermissionDeniedResponse response) {

                            }

                            @Override
                            public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {

                            }
                        }).check();  

Voici ta methode onCreateFile

private File onCreateFile(nomDossier) {
        // Tu dois lancer une boite de dialogue au autre chose durant tout le traitement
        
        String path= Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+nomDossier+"/";

        File root = new File(path);
        if (!root.exists()) {
            root.mkdirs();
        }
        String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        timeStamp= "PNG_" + timeStamp + "_.png";
        File file=new File(path+timeStamp);
        if(file.exists()){
            file.delete();
        }
        try{
            if(file.createNewFile()){
                FileOutputStream outputStream=new FileOutputStream(file);
               //Tu fais tout ce que tu veux avec ton outputStream
            }

        }
        catch(IOException e){

        }


        return file;

    }

N'oubli pas dès que tu appelles la méthode onCreateFile , de lancer une boite de dialogue durant le traitement






  • Partager sur Facebook
  • Partager sur Twitter
21 février 2020 à 13:45:47

Bonjour,

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL