文章分类 Classification
【dart flutter】
dart删除旧版本缓存包
稿件来源: 阳光企业网站管理系统 撰稿作者: 太阳光 发表日期: 2019-04-02 阅读次数: 1799 查看权限: 游客查看
dart旧版本的包越来越多,资源占用也不小,可使用以下方法删除
import 'dart:io'; Map<String, List> _mapList = new Map(); String getPubPath() { var path = Platform.environment["PUB_CACHE"]; if (path == null) { path = Platform.isWindows ? Platform.environment["APPDATA"] + r"/pub/cache/hosted/pub.flutter-io.cn" : r"~/.pub-cache/hosted/pub.flutter-io.cn"; } if (!new Directory(path).existsSync()) { print(r"[错误]未找到Pub缓存目录!"); exit(-1); } print("[提示]Pub缓存目录:${path}"); return path; } void cleanCacheDir() { String path = getPubPath(); Directory cacheDir = new Directory(path); //遍历所有文件夹 List<FileSystemEntity> packageList = cacheDir.listSync(); for (var i in packageList) { String packagePath = i.absolute.path; String fullName = packagePath.substring(packagePath.lastIndexOf(new RegExp(r"[/\\]")) + 1); RegExp reg = new RegExp(r"(^.+)(-\d+\..*$)"); if(reg.hasMatch(fullName)){ Iterable<Match> matches = reg.allMatches(fullName); for(var match in matches) { var key = match.group(1); if(_mapList[key] == null){ _mapList[key] = new List(); } _mapList[key].add(match.group(2)); } } } for(var key in _mapList.keys) { List arr = _mapList[key]; if(arr.length > 1){ // 排序版本 arr.sort((a, b) => b.compareTo(a)); // 遍历旧版本并删除 arr.sublist(1).forEach((server){ File file = new File(path + "/" + key + server); print("[Delete] ${file.path}"); file.delete(recursive: true); }); } } print("已经清理完毕!"); } main() async { cleanCacheDir(); }
关键词: dart,flutter,包 编辑时间: 2019-04-02 14:45:07
0
高兴0
支持0
搞笑0
不解0
谎言0
枪稿0
震惊0
无奈0
无聊0
反对0
愤怒
0%(0)
0%(0)
- 中搜索:dart删除旧版本缓存包
- 中搜索:dart删除旧版本缓存包
- 暂无评论
文章图片 article Pictrue
网友评论