【问题标题】:Android file.exists() and file.isFile not workingAndroid file.exists() 和 file.isFile 不工作
【发布时间】:2021-11-16 11:36:40
【问题描述】:

我尝试使用以下代码将文件下载到下载文件夹:

private fun downloadTrack(track: Track) {
        val url = track.file
        val request = DownloadManager.Request(Uri.parse(url))
        request.setDescription("Downloading track ${track.trackName}...")
        request.setTitle(track.trackName)
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)

        request.setDestinationInExternalPublicDir(
            Environment.DIRECTORY_DOWNLOADS,
            track.trackName + ".mp3"
        )

        val manager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager

        val downloadId: Long = manager.enqueue(request)
        registerBroadcast(downloadId)
    }

在以下登录时下载它后,我正在尝试使用此代码检查它是否已经存在:

    private fun getTrack(track: Track) {
        val file =
            File(
                Environment.DIRECTORY_DOWNLOADS,
                track.trackName + ".mp3"
            )

        try {
            if (file.isFile) {
                Toast.makeText(this, "FILE EXISTS", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this, "FILE NOT FOUND", Toast.LENGTH_SHORT).show()
                downloadTrack(track)
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

还尝试了 file.exists() 并使用目录。没有任何帮助,尽管我在同一目录中查找文件,但下载后找不到文件。 请帮忙。

【问题讨论】:

    标签: android file kotlin


    【解决方案1】:

    Environment.DIRECTORY_DOWNLOADS

    这还不够。

    你需要:

    getExternalStoragePublicDirectory( Environment.DIRECTORY_DOWNLOADS)
    

    【讨论】:

    • 你救了我!非常感谢!
    猜你喜欢
    • 2012-09-13
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2015-10-14
    • 2011-09-24
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多