感谢各位这里实现:双击自动关联文件类型打开 2.PC所有驱动器 3.小型资源管理器!!

 首先主页面:

  

2.运用DriveInfo驱动器的信息:获得整个系统磁盘驱动!!,运用frorach循环遍历到Treeview控件中去。

   private void DBA_Load(object sender, EventArgs e)
{ DriveInfo[] drivers = DriveInfo.GetDrives(); //获得整个系统磁盘驱动 //将盘符名加载到TreeView的顶级节点
foreach (DriveInfo driver in drivers)
{
TreeNode node = new TreeNode(driver.Name);
node.Tag = driver.Name;
this.tvlist.Nodes.Add(node);
}
}
3.将目录TreeView中和子目录绑到listView中
 private void tvlist_AfterSelect(object sender, TreeViewEventArgs e)
{
//在tvlist选择的当前的节点
TreeNode node = this.tvlist.SelectedNode;
this.BindInfo(node);
}
//将目录TreeView中和子目录绑到listView中
public void BindInfo(TreeNode node)
{
//绑定子目录
DirectoryInfo directoryInfo = new DirectoryInfo(node.Tag.ToString());
//返回当前目录的子目录
DirectoryInfo[] dirc = directoryInfo.GetDirectories();
node.Nodes.Clear();
foreach (DirectoryInfo item in dirc)
{
TreeNode temp = new TreeNode();
temp.Text = item.Name;
temp.Tag = item.FullName;//完整的路径
node.Nodes.Add(temp);
}
//得到当前的子文件
FileInfo[] fi = directoryInfo.GetFiles();
//为了不让它重复出现
lvlist.Items.Clear();
//循环到listVilw中
foreach (FileInfo item in fi)
{
ListViewItem list = new ListViewItem();
list.Text = item.Name;//文件名字
list.SubItems.Add((item.Length / 1024.0).ToString());//大小
list.SubItems.Add(item.Extension);//类型 list.SubItems.Add(item.FullName);//路径
lvlist.Items.Add(list);
}
}
4.鼠标点击右键有复制和删除功能:(folderBrowsDialog:提示用户选择目标文件夹)
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
//复制文件
//浏览文件的对话框
if (this.lvlist.SelectedItems.Count == )
{
return;
}
//提示用户选择目标文件夹
FolderBrowserDialog fl = new FolderBrowserDialog();
DialogResult result = fl.ShowDialog();
//判断是否用户点击的是确定键
if (result == DialogResult.OK)
{
//原路径
string sourcePath = lvlist.SelectedItems[].SubItems[].Text;
//目标的文件路径
string desPath = null;
//打开对话框你要选择复制的新的路径
desPath = fl.SelectedPath;
//lvlist表示显示文件信息的ListView对象
desPath += "\\" + lvlist.SelectedItems[].SubItems[].Text;
File.Copy(sourcePath,desPath,true);
MessageBox.Show("复制成功!");
}
}
5.删除(慎重删除:它是彻底删除!!)
 private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (lvlist.SelectedItems.Count> )
{
DialogResult resuot = MessageBox.Show("确定要删除此文件吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if (resuot == DialogResult.OK)
{
string path = lvlist.SelectedItems[].SubItems[].Text;
File.Delete(path);
//删除lvlist的数据
lvlist.SelectedItems[].Remove();
}
}
}

6.重要的!(实现1.双击自动关联文件类型):

  //鼠标双击的事件的发生
private void lvlist_MouseDoubleClick(object sender, MouseEventArgs e)
{
//创建打开文件框的对象
OpenFileDialog open = new OpenFileDialog();
//获取路径
string path = lvlist.SelectedItems[].SubItems[].Text; //目的就是想通过指定资源管理器打开指定的地址。expporer:打开资源管理器
System.Diagnostics.Process.Start("explorer.exe", path); }
 
 
 

 
 
 


                     

最新文章

  1. ACM: 强化训练-Beautiful People-最长递增子序列变形-DP
  2. codevs1688 求逆序对
  3. nrf51822-主从通信分析2
  4. Eclipse Tomcat配置/管理/调试指南
  5. magento addFieldToFilter()方法常用的过滤条件
  6. httpd cgi程序配制+.py .cgi执行
  7. js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)
  8. C#利用Emit反射实现AOP,以及平台化框架封装思路
  9. linux查看系统的硬件信息
  10. 2019.03.09 bzoj5371: [Pkusc2018]星际穿越(主席树)
  11. [转]decorators.xml的用法
  12. ecmall 学习记录
  13. ZOJ 1259 Rails
  14. 飞机找不到,流量哪去了?记一次移动WAP网关导致的问题
  15. 转载:不定义JQuery插件,不要说会JQuery
  16. MD5加密 时间差 流水号等方法
  17. gulp+es6构建页面
  18. 利用fetch进行POST传参
  19. mysql索引语法及示例
  20. 20160916-3:mysql主从复制

热门文章

  1. 肝了两天IntelliJ IDEA 2020,解锁11种新姿势, 真香!!!
  2. NVIDIA GPU Pascal架构简述
  3. antd实战:表单上传,文件列表的过滤与限制。
  4. vue : 项目起手式 - router组件通用模板
  5. Mybatis——Mapper解析
  6. linux nginx 部署多套服务(以react包为例)
  7. vue学习(三) v-bind指令
  8. Python编程初学者指南|百度网盘免费下载|Python新手入门资料
  9. 前端学习(四):body标签(二)
  10. 跟老刘学运维day01~谈红帽系统