解压缩时找不到文件错误

时间:2018-07-09 12:02:14

标签: android zip unzip filenotfoundexception

我大约有数百个.jpg文件,我将其以.zip格式上传到了link,然后我试图将其下载并解压缩到我的应用程序中,所以下载没有问题,但是我遇到了错误尝试使用以下代码解压缩文件时,如下图所示,

知道为什么会这样吗?

这是我已经尝试解决的问题

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
}

enter image description here

1 个答案:

答案 0 :(得分:0)

我改用了{{3}},它解决了所有问题