以下是一个使用 Kotlin 语言实现的示例代码,用于将同一文件夹下的文件按不同日期进行合并压缩:

import java.io.File
import java.text.SimpleDateFormat
import java.util.*

fun main() {
    val folderPath = 'your_folder_path'
    val outputFolderPath = 'your_output_folder_path'

    val fileMap = HashMap<String, MutableList<File>>()

    val folder = File(folderPath)
    val sdf = SimpleDateFormat('yyyy-MM-dd')
    val files = folder.listFiles()

    // 将文件按日期分类
    for (file in files) {
        if (file.isFile) {
            val lastModified = file.lastModified()
            val date = sdf.format(Date(lastModified))
            val fileList = fileMap.getOrDefault(date, mutableListOf())
            fileList.add(file)
            fileMap[date] = fileList
        }
    }

    // 对每个日期下的文件进行压缩
    for ((date, fileList) in fileMap) {
        val outputFilePath = '$outputFolderPath/$date.zip'
        val outputFolder = File(outputFolderPath)
        if (!outputFolder.exists()) {
            outputFolder.mkdirs()
        }
        ZipUtils.zipFiles(fileList, outputFilePath)
    }
}

object ZipUtils {
    fun zipFiles(files: List<File>, zipFilePath: String) {
        val buffer = ByteArray(1024)
        val out = java.util.zip.ZipOutputStream(java.io.FileOutputStream(zipFilePath))
        for (file in files) {
            val fis = java.io.FileInputStream(file)
            out.putNextEntry(java.util.zip.ZipEntry(file.name))
            var len: Int
            while (fis.read(buffer).also { len = it } > 0) {
                out.write(buffer, 0, len)
            }
            out.closeEntry()
            fis.close()
        }
        out.close()
    }
}

请将your_folder_path替换为要处理的文件夹路径,将your_output_folder_path替换为输出文件夹的路径。

上述代码会将同一日期下的文件合并为一个压缩文件,每个日期对应一个压缩文件。压缩文件以日期命名,并保存在指定的输出文件夹中。代码中使用了ZipUtils类来实现文件压缩功能,你可以根据自己的需求进行修改。

Android Kotlin 代码:按日期合并压缩文件夹内文件

原文地址: https://www.cveoy.top/t/topic/fo8E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录