磁盘使用情况分析
程序员文章站
2022-04-11 08:10:44
仿照Ubuntu下的磁盘使用情况分析器用WPF做了个类似的软件,参考https://github.com/Caliburn-Micro/Caliburn.Micro/tree/3.2.0/samples/features/Features.WPF使用Caliburn.Micro框架完成 项目地址:h ......
仿照ubuntu下的磁盘使用情况分析器用wpf做了个类似的软件,参考https://github.com/caliburn-micro/caliburn.micro/tree/3.2.0/samples/features/features.wpf使用caliburn.micro框架完成
项目地址:https://github.com/alittledruid/diskspaceanalyse
核心代码
public void analyse() { if (parent != null && !string.isnullorempty(foldername) && directory.exists(foldername)) { directoryinfo di = new directoryinfo(foldername); if ((di.attributes & fileattributes.directory) != 0) { try { var files = di.getfiles(); var dirs = di.getdirectories(); //访问部分没有权限的目录会异常,捕获异常后忽略即可 filecount = files.length; foldercount = dirs.length; foreach (fileinfo fi in files) { size += fi.length; } foreach (var item in dirs) { if ((item.attributes & fileattributes.reparsepoint) != 0) { continue; //忽略符号链接,否则可能导致无限递归下去 } var d = new foldertreemodel(item.fullname, this); children.add(d); } foreach (var item in children) { item.analyse(); //无需担心递归层数过多导致stack overflow } } catch { } var tmp = new list<foldertreemodel>(children); children.clear(); children.addrange(tmp.orderbydescending(x => x.size)); //按文件夹大小排序 parent.size += size; } } }
上一篇: 内存对象管理器(基于数组和链表实现)
下一篇: 韭菜黄的作用有哪些?