| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import 'dart:io';
- import 'package:path_provider/path_provider.dart';
- class CacheUtil {
- // 获取缓存大小
- static Future<int> getCacheSize() async {
- Directory tempDir = await getTemporaryDirectory();
- if (!await tempDir.exists()) return 0;
- return await _calculateSize(tempDir);
- }
- // 递归计算目录大小
- static Future<int> _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<void> clearCache() async {
- Directory tempDir = await getTemporaryDirectory();
- if (await tempDir.exists()) {
- await _deleteDirectory(tempDir);
- }
- }
- // 递归删除目录
- static Future<void> _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();
- }
- }
- }
|