Как найти директорию андроида, в которую загружаются файлы - PullRequest
0 голосов
/ 13 мая 2018

Я делаю приложение, которое загружает файлы из Интернета и сохраняет их на хранилище. У меня есть 2 вопроса: во-первых, как обратиться к ним, чтобы сохранить их в папке загрузок, которая является точным адресом?и второе, где находится этот каталог "/data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg", который он использует сейчас?вот мой код

            mainFetch = Fetch.Builder(applicationContext, "Download 1 file")
            .setDownloadConcurrentLimit(1) .
            .enableLogging(true)
            .build()

    //Single enqueuing example
    val request = Request("https://www.sample-videos.com/img/Sample-jpg-image-50kb.jpg",
            applicationContext.getFilesDir().getPath().toString() +"/Downloads/file.jpg")
    request.priority=Priority.HIGH;
    request.networkType=NetworkType.ALL
    request.addHeader("download", "2")

    mainFetch!!.enqueue(request, object : Func<Download> {
        override fun call(t: Download) {

        Toast.makeText(applicationContext,t.file,Toast.LENGTH_SHORT).show();
       //toasts /data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg

        }
    }, object : Func<Error> {
        override fun call(t: Error) {
            Toast.makeText(applicationContext,t.toString(),Toast.LENGTH_SHORT).show();
        }
    })`

1 Ответ

0 голосов
/ 13 мая 2018

сначала, как обратиться к нему, чтобы сохранить их в папке загрузок, которая является точный адрес?

Используйте следующее:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

Если вы нацелены на Andrpid 6.0 и выше, не забудьте запросить WRITE_EXTERNAL_STORAGE для записи в этот каталог и READ_EXTERNAL_STORAGE для чтения из этого каталога. Пользователь должен предоставить эти разрешения, следовательно, вы должны реализовать модель разрешений. Вы можете следовать этому официальному учебнику , чтобы реализовать это.

секунда где это "/Data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg" каталог, который он использует сейчас?

Это каталог для вашего приложения. Файлы, сохраненные для этого, являются частными для вашего приложения, и другие приложения не могут получить к ним доступ (равно как и пользователь, если у них нет корневого доступа). Это делает внутреннее хранилище хорошим местом для внутренних данных приложения, к которым пользователю не требуется прямой доступ.

Однако на устройстве Samsung я обнаружил, что ES File Explorer может получить доступ к этому каталогу. Но загадка в том, как им это удается.

...