Файл не удален успешно в Android

#android #file #android-sdcard

#Android #файл #android-sdcard

Вопрос:

У меня есть несколько файлов изображений на моей SD-карте внутри папки req_images. Я хочу удалить все файлы изображений в этой папке. Итак, я написал следующий код. Arraylist f хранит список всех файлов изображений в нем в виде /mnt/sdcard/req_images/Image-1.jpg . Когда я пытаюсь удалить все файлы один за другим с помощью цикла for, файлы не удаляются с моей SD-карты. Логический результат, который я получаю в качестве вывода, был ложным, когда я пытался удалить все файлы. Файл все еще находится на SD-карте, и я его проверил. В чем возможная ошибка.

 ArrayList<String> f = new ArrayList<String>();   // list of available files in  path
  File[] listFile;
public void getSdcardImages()
  {
File file= new File(android.os.Environment.getExternalStorageDirectory(),"req_images");

    if (file.isDirectory())
    {
        listFile = file.listFiles();


        for (int i = 0; i < listFile.length; i  )
        {

            f.add(listFile[i].getAbsolutePath());

        }
    }
 }
for(int h=0;h<f.size();h  )
{
File fil=new File(f.get(h));
Boolean bool= fil.delete();
Log.d("File deletion status" h,bool.toString());
}
  

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

1. Это на Android 4.4.2?

2. @Тим С. Ван Харен. Нет.. Android 4.1.1

3. В чем проблема с Android 4.4.2??

4. Записать разрешение на внешнее хранилище в манифесте?

5. @greenapps. Я уже дал разрешение в манифесте. Но все равно бесполезно…

Ответ №1:

Вместо того, чтобы делать это таким образом, попробуйте другой подход

 File dir = new File(Environment.getExternalStorageDirectory()   "/req_images"); 
if (dir.isDirectory()) {
     String[] children = dir.list();
     for (int i = 0; i < children.length; i  ) {
        new File(dir, children[i]).delete();
     }
}
  

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

1. Не используйте mkdirs(), если вы хотите удалить файлы.