Android Kotlin 代码:按日期合并压缩文件夹内文件
以下是一个使用 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类来实现文件压缩功能,你可以根据自己的需求进行修改。
原文地址: https://www.cveoy.top/t/topic/fo8E 著作权归作者所有。请勿转载和采集!