Удаление всего содержимого определенной папки

#android #camera #delete-file

#Android #камера #удалить-файл

Вопрос:

Я пытаюсь удалить все содержимое папки моего устройства при аппаратном нажатии назад, но этого не происходит?

Вот что я пытаюсь:

      @Override
    public void onBackPressed() {

         deleteFileFromDirectory();
         finish();


    }



 public void deleteFileFromDirectory()
    {

        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "MyCameraApp");


        if (mediaStorageDir.exists()) {

            isdeleted = mediaFile.delete();
            System.out.println("File deleted :"  isdeleted);//gives false
        }
        else
            System.out.println("Directory not exist");
    }
 

В документации указано, что оно должно быть пустым… итак, что мне делать?

Комментарии:

1. Вы не пытаетесь удалить папку?

2. Да, я пытаюсь удалить папку! @yygyt

3. Ответ CapDroid, похоже, решает вашу проблему.

Ответ №1:

Если ваш путь содержит файл, то вы можете удалить, но ваш путь содержит папку, тогда эта папка должна быть пустой, поэтому сначала вам нужно удалить все файлы из папки и удалить определенную папку.

Вот пример кода.

 public void DeleteRecursive(String strPath) {

    File fileOrDirectory = new File(strPath);

    if (fileOrDirectory.isDirectory()){
        for (File child : fileOrDirectory.listFiles())
            DeleteRecursive(child.getPath());
        fileOrDirectory.delete();
    }else{

        fileOrDirectory.delete();
    }
}
 

просто вызовите этот метод и передайте свой путь к sdcard в параметре.

 String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) "MyCameraApp";

DeleteRecursive(path);