Newer
Older
Endoscope / app / src / main / java / com / casic / endoscope / utils / FileManager.kt
package com.casic.endoscope.utils

import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
import android.util.Log
import com.pengxh.kt.lite.extensions.timestampToDate
import java.io.File

object FileManager {
    private const val kTag = "FileManager"
    private lateinit var directory: File

    fun initRootDirectory(activity: Activity) {
        //先判断MANAGE_EXTERNAL_STORAGE权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            if (!Environment.isExternalStorageManager()) {
                val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
                intent.data = Uri.parse("package:${activity.packageName}")
                activity.startActivity(intent)
            }
        }

        directory = File("${Environment.getExternalStorageDirectory()}/Endoscope")
        if (!directory.exists()) {
            Log.d(kTag, "createRootDirectory: 新建文件夹")
            directory.mkdirs()
        }
        Log.d(kTag, "createRootDirectory: $directory")
    }

    fun getRootDirectory(): File {
        return directory
    }

    fun getVideoFileDir(): File {
        val videoDir = File(getRootDirectory(), "Video")
        if (!videoDir.exists()) {
            videoDir.mkdir()
        }

        val childDir = File(videoDir, System.currentTimeMillis().timestampToDate())
        if (!childDir.exists()) {
            childDir.mkdir()
        }
        return childDir
    }

    fun getImageFileDir(): File {
        val imageDir = File(getRootDirectory(), "Picture")
        if (!imageDir.exists()) {
            imageDir.mkdir()
        }

        val childDir = File(imageDir, System.currentTimeMillis().timestampToDate())
        if (!childDir.exists()) {
            childDir.mkdir()
        }
        return childDir
    }
}