Как удалить файл из / download (или любой другой папки) во внешнем хранилище android с помощью DocumentProvider через Kotlin? - PullRequest
0 голосов
/ 23 февраля 2019

Я [все еще] новичок в разработке Android и о Java и о Kotlin (также может быть хорошо объяснение на Java, однако, я также изучаю его, Kotlin предпочтительнее), и я борюсь за удалениепростой загруженный файл в ExternalStorage.Конечно, я включил разрешение на чтение и запись, и, даже если этот код возвращает «True», я все равно могу видеть нетронутый файл в моей папке загрузки, здесь код: ___ UPDATE

// uri of my file in external storage ~/Download dir
var uri = Uri.parse (Environment.getExternalStorageDirectory().getPath() + "/Download/$myFilename$myExtensionVar")
// file object pointing at uri of file in external storage
val downloadedFile = File(uri.toString())

var deletedBool:Boolean = downloadedFile.delete()
                println("myTag - deleted Boolean: $deletedBool")

                if (deletedBool){
                    println("myTag - uri of file-to-be-deleted: $uri")
                    var secondStepToDelete:Int = context.getContentResolver().delete(uri, null, null)
                    println("myTag - second Step for deletion: $secondStepToDelete")
                }

Файл, от которого я пытаюсь избавиться, является мультимедийным файлом (.mp3), и я добавил второй блок кода (тот, что находится внутри оператора IF), так как я обнаружил, что он должен работать, связанный с «DocumentProvider».(Я новичок и до сих пор не знаю, как правильно вызывать его методы ...), но, конечно, он не работает вообще.Я думаю, что мне нужен идентификатор (длинный тип, который я предполагаю) для файла, хранящегося во внешнем хранилище, однако я пока не нашел, как его получить

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 23 февраля 2019

Чтобы построить объект File, используйте конструктор File.Чтобы создать объект File для местоположения вне определенного корневого каталога, используйте конструктор File(File, String) с двумя параметрами:

val downloadedFile = File(Environment.getExternalStorageDirectory(), "Download/$myFilename$myExtensionVar")

Если вы не получаете Uri из DownloadManager или что-то подобное, Uri вам не нужно delete().

У меня больше написано здесь о внешнем хранилище и о том, как с ним работать.

...