rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

java/kotlin jcifs-ng SMBサーバーのディレクトリ内の全ファイルを再帰的に取得する

2021 Sep. 06.
2021 Aug. 15.

    /*
     * SMBサーバーのすべてのノーマルファイルを取得する再帰関数
     * パラメータ
     *   givenDir  取得対象のSMBディレクトリパス。
     *   tmpSmbNormalFiles  空のMutableList<SmbFile>型変数。
     *       1つ前の再帰関数実行結果を次の再帰関数に渡すための変数。
     *       ユーザーは最初にこの関数を起動するので、空のMutableListを与える。
     */
    private fun getNormalSmbFiles(givenDir: SmbFile, tmpSmbNormalFiles: MutableList<SmbFile>): MutableList<SmbFile>  {
        val childSmbs = givenDir.listFiles()
        if (childSmbs.size > 0) {
            for (eachChild in childSmbs) {
                if (eachChild.isDirectory) {
                    getNormalSmbFiles(eachChild, tmpSmbNormalFiles)
                } else if (eachChild.isFile) {
                    tmpSmbNormalFiles.add(eachChild)
                } else {
                    continue
                }
            }
        }
        return tmpSmbNormalFiles
    }