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
304 +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 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир