C# 仿windows资源管理器
效果如图:
实现代码:
using System;
using System.IO;
using System.Windows.Forms;
using System.Configuration;namespace 磁盘管理
{public partial class frmMain : Form{private bool isfirst = true;private string path = ConfigurationManager.AppSettings["Path"].ToString();public frmMain(){InitializeComponent();PopulateTreeView();}private void PopulateTreeView(){TreeNode rootNode;DirectoryInfo info = new DirectoryInfo(path);if (info.Exists){rootNode = new TreeNode(info.Name);rootNode.Tag = info;GetDirectories(info.GetDirectories(), rootNode);treeView1.Nodes.Add(rootNode);}}private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo){TreeNode aNode;DirectoryInfo[] subSubDirs;foreach (DirectoryInfo subDir in subDirs){aNode = new TreeNode(subDir.Name, 0, 0);aNode.Tag = subDir;aNode.ImageKey = "folder";subSubDirs = subDir.GetDirectories();if (subSubDirs.Length != 0){GetDirectories(subSubDirs, aNode);}nodeToAddTo.Nodes.Add(aNode);}}private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){TreeNode newSelected = e.Node;listView1.Items.Clear();DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag;ListViewItem.ListViewSubItem[] subItems;ListViewItem item = null;foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories()){item = new ListViewItem(dir.Name, 0);subItems = new ListViewItem.ListViewSubItem[]{new ListViewItem.ListViewSubItem(item, "文件夹"),new ListViewItem.ListViewSubItem(item,dir.LastAccessTime.ToString("yyyy-MM-dd hh:mm:ss"))};item.SubItems.AddRange(subItems);listView1.Items.Add(item);}foreach (FileInfo file in nodeDirInfo.GetFiles()){item = new ListViewItem(file.Name, 1);string[] a = file.Name.Split('.');subItems = new ListViewItem.ListViewSubItem[]{ new ListViewItem.ListViewSubItem(item, FileType(a[a.Length-1])+" 文件"),new ListViewItem.ListViewSubItem(item,file.LastAccessTime.ToString("yyyy-MM-dd hh:mm:ss")),new ListViewItem.ListViewSubItem(item,GetString(file.Length))};item.SubItems.AddRange(subItems);listView1.Items.Add(item);}listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);}private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e){if (isfirst){e.Cancel = true;isfirst = false;}}private string FileType(string type){if (type == "dll")return "应用程序扩展";if (type == "exe")return "应用程序";return type;}//文件大小处理public string GetString(long b){const int GB = 1024 * 1024 * 1024;const int MB = 1024 * 1024;const int KB = 1024;if (b / GB >= 1){return Math.Round(b / (float)GB, 2) + "GB";}if (b / MB >= 1){return Math.Round(b / (float)MB, 2) + "MB";}if (b / KB >= 1){return Math.Round(b / (float)KB, 2) + "KB";}return b + "B";}}
}
文件的增删改,移动等功能自己研究吧,,,哈哈都是简单的文件控制功能
参考链接:treeview和listview使用
源码地址:https://pan.baidu.com/s/1gA8-nak43Zt4F9K0zmoQTg 提取码: v29k
C# 仿windows资源管理器相关推荐
- java实现Windows资源管理器
这几天忙别的了,StatusBar存在的问题没来得及解决,也没出新东西.只好贴一个以前的作品救救场. 程序仅仅实现了仿Windows资源管理器的本地文件的浏览功能,不能通过"网上邻居&quo ...
- 简单的Windows资源管理器——Java版本
一直有很多小伙伴私信我要社团管理系统的源码,这个暂时无法分享,根据社团管理系统文章的思路完全是可以自己写出来的哦~ 最近一个小伙伴私聊我需要一个java小程序,现将之前写的一个Windows资源管理器 ...
- 解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题
解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题 参考文章: (1)解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题 (2)ht ...
- windows资源管理器对文件右键未响应!电脑小白求救[哭唧唧]!!!
windows资源管理器对文件右键未响应!电脑小白求救[哭唧唧]!!! 右键文件直接转圈圈无响应! windows资源管理器 对任何文件和文件夹右键都未响应,文件可以拷出到U盘:桌面右键正常,文件双击 ...
- Windows资源管理器
在资源管理器中,选定多个非连续文件的操作为( ). A.按住Shift键,单击每一个要选定的文件图标 B.按住Ctrl键,单击每一个要选定的文件图标 C.先选中第一个文件,按住Shift键,再单击最后 ...
- win10 桌面(Windows 资源管理器)卡死的根本解决办法
自从换上 Win10,桌面就经常卡死,网上很多文章都建议在任务管理器里面重启 "Windows 资源管理器",但只不是根本办法,没办法上网查找了一大通,发现一个可能根本解决的办法, ...
- 为什么说jsp被替代了_您说什么:最喜欢的Windows资源管理器替代品
为什么说jsp被替代了 Earlier this week we asked you to share your favorite alternatives to Window's native fi ...
- 干货分享:Windows资源管理器无限重启?解决方法竟然是…
Windows资源管理器无限重启?Windows资源管理器无限重启教程 我们的电脑一个不留神,就很容易跑偏.程序有bug或是软件设计上有缺陷,会导致程序无限循环.在系统里有表现为Windows资源管理 ...
- windows 2008 r2 sharepoint 2007 文档库 在windows资源管理器打开问题
1. 在Windows2008 r2服务器管理器中安装"桌面体验"功能,服务管理器->功能->添加功能->桌面体验(需要重启).然后,确保网络客户端服务是运行的. ...
- Windows资源管理器占用CPU过高
Hello,everyone! 我是鲁班·,一个热衷于科研和软开的胖子! 问题描述 系统 Win10家庭版 问题 Windows资源管理器占用CPU过高 原因 两天前的操作,可能引发此问题. 安装Vi ...
最新文章
- kali高速更新源以及主题修改方法
- python里面temp是啥-Python模块学习:tempfile 临时文件(夹)操作
- 阿里不让 MySQL 多表 Join ?我偏要!
- Flask框架(flask中的请求上下文和应用上下文,以及请求钩子的使用,Flask-Script 扩展命令行)
- PyTorch-模型
- seir模型matlab_疫情专题 | 传染病的经典数学模型
- python3的xpath_python3爬虫之xpath
- 学习日记day 10 : JavaScript秋风扫落叶第一期
- 大屏样式(全屏禁止滚动)
- 微信公众号开发——java后台开发(一)
- html鼠标悬停图片抖动,鼠标悬停时图像抖动
- Kali 无法连接到网络
- WIN10 注册表添加启动项
- 单位换算:潜热通量(w/m2)转换为蒸散发(mm/s)
- nvidia驱动程序下载类型怎么选?
- 【面试】Java 并发编程
- springboot奥运会志愿者管理系统
- python 基础系列(十二) — python正则
- java如何实现多线程_Java中实现多线程的两种方式
- 第四章SignalR自托管主机