import 'dart:io'; import 'package:path_provider/path_provider.dart'; class CacheUtil { // 获取缓存大小 static Future getCacheSize() async { Directory tempDir = await getTemporaryDirectory(); if (!await tempDir.exists()) return 0; return await _calculateSize(tempDir); } // 递归计算目录大小 static Future _calculateSize(FileSystemEntity file) async { if (file is File) return await file.length(); if (file is Directory) { int total = 0; final children = file.listSync(); for (final child in children) { total += await _calculateSize(child); } return total; } return 0; } // 清理缓存 static Future clearCache() async { Directory tempDir = await getTemporaryDirectory(); if (await tempDir.exists()) { await _deleteDirectory(tempDir); } } // 递归删除目录 static Future _deleteDirectory(FileSystemEntity file) async { if (file is Directory) { final children = file.listSync(); for (final child in children) { await _deleteDirectory(child); } await file.delete(); } else if (file is File) { await file.delete(); } } }