package com.zxhy.fastfilemanagerpro.kokotools

import java.io.File
import java.util.LinkedList

object HelperTraverse {

    //LinkedLis方式遍历
    fun linkedLisTraverseFolder(folder: File, onDo: ((file: File) -> Unit)?) {

        //添加第一层文件到链表
        val linkList = LinkedList<File>()
        val fileList = folder.listFiles()
        fileList?.forEach {
            if (it.isDirectory) {
                linkList.add(it)
            } else {
                onDo?.invoke(it)
            }
        }

        //链表取文件
        var tempFile: File
        while (!linkList.isEmpty()) {
            tempFile = linkList.removeFirst()
            val tempFileList = tempFile.listFiles()
            tempFileList?.forEach {
                if (it.isDirectory) {
                    linkList.add(it)
                } else {
                    onDo?.invoke(it)
                }
            }
        }
    }
}