Как я могу удалить файл из хранилища устройства Android с помощью Kotlin?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу удалить файл из хранилища устройства Android с помощью Kotlin?

Сообщение Anonymous »

Я разрабатываю приложение для Android, которое сохраняет изображения транспортных средств (снятые с камеры устройства) в хранилище устройства (/data/files/image1.jpg, /data/files/image2.jpg и т. д.). сделано правильно, но я не могу их удалить, если мне больше не нужно конкретное изображение (например, я удаляю автомобиль из базы данных SQLite). Все транспортные средства «представлены» на экране Jetpack Compose с возможностью компоновки «Карта» и «Ленивая колонка». У каждой карты есть кнопка «Удалить», которая работает хорошо, она удаляет карту, и изменение состояния правильно обновляет пользовательский интерфейс, за исключением того, что если я удалю карту между двумя другими, карта после удаленной вместо этого отобразит фотографию удаленной. своей собственной фотографии. Я читал, что это может быть как-то связано с попыткой удалить файл, который используется, но сначала я удаляю запись базы данных (которая имеет поле «путь к изображению» типа ТЕКСТ), поэтому я бы не стал использовать этого изображения сейчас, и теоретически я уже должен иметь возможность удалить файл изображения из хранилища устройства.
Я создал функцию в ViewModel, которая удаляет как запись, так и файл изображения, но выполнение file.delete() не удаляет его, поскольку он все еще отображается в проводнике устройств. Если у вас есть какие-либо предложения, дайте мне знать о них, поскольку я уже несколько месяцев пытаюсь решить эту проблему.
Вот функция в моей ViewModel:

Код: Выделить всё

  fun deleteVehicle(id:Int,fileName:String){

viewModelScope.launch{

val directory = context.filesDir
val file = File(directory, fileName)

try{

repository.deleteVehicle(id)

if(file.exists()){

file.delete()

}
}catch(e:Exception){

Log.e("ViewModel:","Error while trying to delete the vehicle: ${e.message}")

}

}

}
Заранее большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-kotlin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»