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: в манифесте:
Проблема может заключаться в том, что после удаления файла из базы данных вы не уведомляете медиа-сканер о том, что файл был удален. Поэтому файл продолжает отображаться в галерее.
Для того чтобы исправить это, попробуйте после удаления файла вызвать метод 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)
}
Также убедитесь, что у вас правильно настроены разрешения в манифесте. Если проблема остается, также можете проверить правильность пути к файлу и его доступ к файловой системе.
Проблема может заключаться в том, что после удаления файла из базы данных вы не уведомляете медиа-сканер о том, что файл был удален. Поэтому файл продолжает отображаться в галерее.
Для того чтобы исправить это, попробуйте после удаления файла вызвать метод 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)
}
Также убедитесь, что у вас правильно настроены разрешения в манифесте. Если проблема остается, также можете проверить правильность пути к файлу и его доступ к файловой системе.