#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(), если вы хотите удалить файлы.