Android 解压时未找到文件错误

Android 解压时未找到文件错误,android,zip,unzip,filenotfoundexception,Android,Zip,Unzip,Filenotfoundexception,我有大约100个.jpg文件,我把它作为.zip上传到这里,然后我尝试下载它并在我的应用程序中解压它,所以下载没有问题,但我在尝试使用下面的代码解压文件时出现了下图所示的错误 知道为什么会这样吗 以下是我已经尝试解决的问题 1-获取错误中提到的.jpg文件并将其重命名为zip文件(相同错误) 2-获取错误中提到的.jpg文件并将其删除(现在zip中的下一个.jpg文件也发生了相同的错误) 3-更改目录(相同错误) 4-更改zip中的每个文件名(相同错误) 5-尝试多次解压它解压一个空文件夹 6-

我有大约100个.jpg文件,我把它作为.zip上传到这里,然后我尝试下载它并在我的应用程序中解压它,所以下载没有问题,但我在尝试使用下面的代码解压文件时出现了下图所示的错误

知道为什么会这样吗

以下是我已经尝试解决的问题

1-获取错误中提到的.jpg文件并将其重命名为zip文件(相同错误) 2-获取错误中提到的.jpg文件并将其删除(现在zip中的下一个.jpg文件也发生了相同的错误) 3-更改目录(相同错误) 4-更改zip中的每个文件名(相同错误) 5-尝试多次解压它解压一个空文件夹 6-尝试在计算机中解压(没问题,一切正常) 7-尝试从其他链接解压缩其他文件(无错误,一切正常) 8-更改每个文件名并将其上载到不同链接后,重新压缩计算机中的文件夹(相同问题)

我用了这个,它解决了所有问题

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_questions1)
val foldername = "LQuestions"
        val zipFolder = File(Environment.getExternalStorageDirectory(), "السادس.اعدادي/$foldername.zip")
try{
zipFolder.unzip()}
catch(e:Exception){
                    Toast.makeText(applicationContext,e.toString(), Toast.LENGTH_LONG).show()
}

}

fun File.unzip(root: File? = null): Boolean {

    val rootFolder = root
            ?: File(parentFile.absolutePath + File.separator + nameWithoutExtension)
    if (!rootFolder.exists()) {
        rootFolder.mkdirs()
    }

    data class ZipIO(val entry: ZipEntry, val output: File)

    ZipFile(this).use { zip ->
        zip
                .entries()
                .asSequence()
                .map {
                    val outputFile = File(rootFolder.absolutePath + File.separator + it.name)
                    ZipIO(it, outputFile)
                }
                .filter { (entry, output) ->
                    !(entry.isDirectory && (output.exists() || output.mkdirs()))
                }
                .forEach { (entry, output) ->
                    zip.getInputStream(entry).use { input ->
                        output.outputStream().use { output ->
                            input.copyTo(output)
                        }
                    }
                }
    }
    return true
}