Сохранение ImageView в галерею – код не работает

Это мой первый вопрос. Я искал свои сомнения. Я нашел похожие вопросы, но я точно не получил свой ответ. Поэтому, пожалуйста, простите меня, если я сделал что-то неправильно. Я пытаюсь сохранить изображение из ImageView в своем приложении в папку на моей SD-карте. Вот код: –

public void save(View view) { myImage.setDrawingCacheEnabled(true); Bitmap imgV = myImage.getDrawingCache(); String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/AVP_saved"); String fname="Image.png"; File file = new File(myDir, fname); try { FileOutputStream out = new FileOutputStream(file); imgV.compress(Bitmap.CompressFormat.PNG, 90, out); out.flush(); out.close(); Toast.makeText(this, "Image Downloaded", 7000).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, e.getMessage(), 8000).show(); } } 

Метод «Сохранить» – это метод, назначенный кнопке. «MyImage» – это ImageView, найденный по его идентификатору. Я уже установил разрешения в манифесте. Дело в том, что изображение не будет спасено, и в нем говорится, что путь не существует. Когда я сам создаю папку «AVP_saved», изображение будет сохранено. Что мне нужно изменить в этом коде, чтобы приложение создало папку самостоятельно, когда я нажимаю кнопку?

Спасибо за ваше время!

Добавьте этот код после File myDir = new File(root + "/AVP_saved");

 if(!myDir.exists()) { mydir.mkdir(); //you can else call mkdirs() if you have to create a complete directory hierarchy } 

Кажется, что в Java невозможно создать иерархию каталогов, создав в нем только файл. При этом вы создадите свой каталог только в том случае, если он не существует (будьте осторожны, если каталог существует, но это файл, он может запустить исключение, поэтому вы можете также искать myDir.isDirectory ()).