Android 10 个存储 ENOENT(没有那个文件或目录)

Android 10 storage ENOENT (No such file or directory)

private fun createOutputFile(fileNumber: Int): File {
    val directoryPath =
        Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
            .toString() + File.separator + FOLDER_NAME

    val file = File(directoryPath)
    if (!file.exists()) {
        file.mkdir()
    }

    val outputPath = directoryPath + File.separator + createFileName(fileNumber)

    return File(outputPath)
}

此代码适用于 Android 11 和 Android 9。

在 Android 10 时抛出 open failed: ENOENT (No such file or directory)。 使用 android:requestLegacyExternalStorage="true" 它有效。

我想摆脱 requestLegacyExternalStorage,谁能解释一下为什么它在 Android 11 上有效而在 Android 10 上无效?有什么区别?

权限 WRITE_EXTERNAL_STORAGE 已授予。

I want to get rid of requestLegacyExternalStorage

没有。编号编号

你为什么要这么做?

别无选择。

离开它!

需要10台,只用于10台设备。

如果您想在 Android 10 设备上使用该代码,则必须将其放入清单中。