как создать папку из API 29 и далее в Android Java? - PullRequest
0 голосов
/ 17 июня 2020

Я новичок в Android, и поскольку Environment.getExternalStorageDirectory () устарела, мне интересно, как создать папку на моей внешней SD? Мой манифест правильный и имеет разрешение на чтение / запись ie. вот мой код:

@Override
 public boolean onOptionsItemSelected(@NonNull MenuItem item) {
 File path = new File(Environment.getExternalStorageDirectory().getPath());
 String myFolder = "/Vault/";
 File f = new File(path, myFolder);
    if(item.getItemId()==(R.id.AddNew)){
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle("Create New Album");
        alert.setMessage("Enter Your Album Name");
        final EditText input = new EditText(this);
        alert.setView(input);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                String value = String.valueOf(input.getText());
                // Do something with value!
                File file= new File(path+File.separator+value);
                try{
                    if(!file.exists())
                    {
                        if(file.mkdirs())
                        {
                            Toast.makeText(Album.this,"Folder Album Created Successfully",Toast.LENGTH_SHORT).show();
                        }
                        else{
                            Toast.makeText(Album.this,"Not Created",Toast.LENGTH_LONG).show();
                        }
                    }
                    else if(file.exists()){
                        Toast.makeText(Album.this,"Folder Exists",Toast.LENGTH_SHORT).show();
                    }
                }
                catch (NullPointerException e) {
                    // Unable to create file, likely because external storage is
                    // not currently mounted.
                    Log.w("ExternalStorage", "Error writing " + file, e);
                }
            }
        });
        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                // Canceled.
            }
        });

Этот код не создает папку. Все, что я хочу сделать, это создать папки в SD / Vault /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...