File.delete(); Почему не работает? Добрый день, у меня такая проблема, не могу удалить файл из галереи.
Сначала сохраняю ссылку на скаченный файл в базу:private void saveBase(int i){
ContentValues content = new ContentValues();
SQLiteDatabase database = pricedb.getWritableDatabase();
content.put("images", urs[i]);
long rowID = database.insert("db_prices", null, content);
Log.e(ConfigVar.LOG_TAG, "URI: "+ urs[i]);
}
Потом при следующей загрузке изображения чищу базу и удаляю файлы, но файлы не удаляются:private void deleteBase() {
SQLiteDatabase database = pricedb.getWritableDatabase();
Cursor cursor = database.query("db_prices", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
int images = cursor.getColumnIndex("images");
do {
String image = cursor.getString(images);
File file = new File(image);
if (file.exists()) {
if (file.delete()) {
Log.e(ConfigVar.LOG_TAG, "Файл удалён: "+ image);
} else {
Log.e(ConfigVar.LOG_TAG,"Файл не найден :"+ image);
}
}
}
while (cursor.moveToNext());
}
database.delete("db_prices", null, null);
}
В логах пишет что файл удалён, но в галереи они только умножаются(загружаю каждый раз).
P.S: в манифесте:

21 Авг 2019 в 06:32
210 +1
0
Ответы
1

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

Для того чтобы исправить это, попробуйте после удаления файла вызвать метод MediaScannerConnection.scanFile() для сканирования и обновления информации о файлах в системе. Например:

if (file.exists()) {
if (file.delete()) {
Log.e(ConfigVar.LOG_TAG, "Файл удалён: " + image);
// Сканировать файл для обновления информации в системе
MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);
} else {
Log.e(ConfigVar.LOG_TAG, "Файл не найден: " + image);
}
}

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

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир