编写一个简易的文件管理器,通过本次实验,练习 TreeView、ListView 和SplitContainer 控件的使用,同时熟悉 C#文件系统的操作方法以及 File 类和 Directory类的使用。

(1)新建 windows 应用程序。

(2)将窗体 Form 的 Text 属性设置为“简易的文件管理器”。

(3)窗体上添加 SplitContainer、TreeView、ListView 控件,设置属性。将 TreeView 控

件的 Dock 属性设置为 Left,ListView 控件的 Dock 属性设置为 Fill,MultiSelect 属性设置为False,View 属性设置为 List。

(4)在 Form1.cs 中,添加对命名空间 using System.IO 的引用。

代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. namespace Lab08_1
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. TreeNode myComputerNode = new TreeNode("我的电脑");
  19. treeView1.Nodes.Add(myComputerNode);
  20. listViewShow(myComputerNode);
  21.  
  22. }
  23.  
  24. private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
  25. {
  26.  
  27. }
  28. private void listViewShow(TreeNode dirNode)
  29. {
  30. listView1.Clear();
  31. if (dirNode.Parent == null)
  32. {
  33. foreach (string DrvName in Directory.GetLogicalDrives())
  34. {
  35. ListViewItem aItem = new ListViewItem(DrvName);
  36. listView1.Items.Add(aItem);
  37. }
  38. }
  39. else
  40. {
  41. foreach (string DirName in Directory.GetDirectories((string)dirNode.Tag))
  42. {
  43. ListViewItem aItem = new ListViewItem(DirName);
  44. listView1.Items.Add(aItem);
  45. }
  46. foreach (string fileName in Directory.GetFiles((string)dirNode.Tag))
  47. {
  48. ListViewItem aItem = new ListViewItem(fileName);
  49. listView1.Items.Add(aItem);
  50. }
  51. }
  52. }
  53. private void listViewShow(string dirName)
  54. {
  55. listView1.Clear();
  56. try
  57. {
  58. foreach (string DirName in Directory.GetDirectories(dirName))
  59. {
  60. ListViewItem aItem = new ListViewItem(DirName);
  61. listView1.Items.Add(aItem);
  62. }
  63. foreach (string fileName in Directory.GetFiles(dirName))
  64. {
  65. ListViewItem aItem = new ListViewItem(fileName);
  66. listView1.Items.Add(aItem);
  67. }
  68. }
  69. catch
  70. {
  71. }
  72. }
  73. private void DirTreeShow(TreeNode dirNode)
  74. {
  75. try
  76. {
  77. if (dirNode.Nodes.Count == 0)
  78. {
  79. if (dirNode.Parent == null)
  80. {
  81. foreach (string DrvName in Directory.GetLogicalDrives())
  82. {
  83. TreeNode aNode= new TreeNode(DrvName);
  84. aNode.Tag=DrvName;
  85. dirNode.Nodes.Add(aNode);
  86. }
  87. }
  88. }
  89. else
  90. {
  91. foreach(string DirName in Directory.GetDirectories((string)dirNode.Tag))
  92. {
  93. TreeNode aNode=new TreeNode(DirName);
  94. aNode.Tag=DirName;
  95. dirNode.Nodes.Add(aNode);
  96. }
  97. }
  98. }
  99. catch
  100. {
  101. }
  102. }
  103.  
  104. private void treeView1_AfterSelect_1(object sender, TreeViewEventArgs e)
  105. {
  106. listViewShow(e.Node);
  107. DirTreeShow(e.Node);
  108. }
  109.  
  110. private void listView1_DoubleClick_1(object sender, EventArgs e)
  111. {
  112. foreach (int listIndex in listView1.SelectedIndices)
  113. {
  114. listViewShow(listView1.Items[listIndex].Text);
  115. }
  116. }
  117.  
  118. }
  119. }

页面演示:

C#编写一个简易的文件管理器的更多相关文章

  1. 基于OpenGL编写一个简易的2D渲染框架-06 编写一个粒子系统

    在这篇文章中,我将详细说明如何编写一个简易的粒子系统. 粒子系统可以模拟许多效果,下图便是这次的粒子系统的显示效果.为了方便演示,就弄成了一个动图. 图中,同时显示了 7 种不同粒子效果,看上去效果挺 ...

  2. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

  3. 基于OpenGL编写一个简易的2D渲染框架-03 渲染基本几何图形

    阅读文章前需要了解的知识,你好,三角形:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/ 要 ...

  4. 基于OpenGL编写一个简易的2D渲染框架-01 创建窗口

    最近正在学习OpenGL,我认为学习的最快方法就是做一个小项目了. 如果对OpenGL感兴趣的话,这里推荐一个很好的学习网站 https://learnopengl-cn.github.io/ 我用的 ...

  5. 使用KVM的API编写一个简易的AArch64虚拟机

    参考资料: Linux虚拟化KVM-Qemu分析(一) Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化 Linux虚拟化KVM-Qemu分析(三)之KVM源码(1) Linux虚拟化KV ...

  6. python 正则的使用 —— 编写一个简易的计算器

    在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 + ...

  7. day-1 用python编写一个简易的FTP服务器

    从某宝上购买了一份<Python神经网络深度学习>课程,按照视频教程,用python语言,写了一个简易的FTP服务端和客户端程序,以前也用C++写过聊天程序,编程思路差不多,但是pytho ...

  8. Python Django 编写一个简易的后台管理工具4-添加admin模版

    导入admin后台模版 可以在网上任意搜索模版,我这里也提供一个地址github 拷贝admin后台的html文件至项目的templates文件夹 创建static文件夹,将admin后台的js,im ...

  9. 基于OpenGL编写一个简易的2D渲染框架-08 重构渲染器-整体架构

    事实上,前面编写的渲染器 Renderer 非常简陋,虽然能够进行一些简单的渲染,但是它并不能满足我们的要求. 当渲染粒子系统时,需要开启混合模式,但渲染其他顶点时却不需要开启混合模式.所以同时渲染粒 ...

随机推荐

  1. Python脚本生成可执行文件&(恋爱小脚本)

    Python脚本生成可执行文件&(恋爱小脚本) 参考文献: http://c.biancheng.net/view/2690.html; https://blog.csdn.net/qq_39 ...

  2. JZ-036-两个链表的第一个公共结点

    两个链表的第一个公共结点 题目描述 输入两个链表,找出它们的第一个公共结点.(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 题目链接: 两个链表的第一个公共 ...

  3. php 23种设计模型 - 享元模式

    享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式. ...

  4. Centos8 Yum 安装Nginx指定版本

    查看系统和EPEL的nginx版本   dnf info nginx 通过官方 yum 源安装nginx       vi /etc/yum.repos.d/nginx.repo 列出所有版本    ...

  5. ArcScene数据与Sketchup数据的交互

    博主给大家介绍一下ArcScene数据与Sketchup数据的交互. 应用软件:ArcGIS10.2.Sketchup.Photoshop (1)利用Google earth影像采集小区主要建筑物.可 ...

  6. 微信小程序刚注册快速达到1000uv

    一.什么是微信小程序uv ​ UV:是累计独立访问,1个微信号就是一个uv,多次访问不算 ​ 大家想提升微信小程序uv都是为了开通流量主 二.流量主开通标准 ​ 达到1000uv就可以开通:严重违纪不 ...

  7. CentOS7.5环境下安装配置GitLab

    1. 安装依赖软件 yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启,并启动, ...

  8. 如何使用Java AWT 创建一个简易计算器

    摘要:手把手教你使用 Java AWT 创建一个简易计算器. 本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工 ...

  9. JVM知识梳理

    JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境. Java 程序设计语言 Java 虚拟机 Java API类库 JRE 是什么? JRE 是支持 Java 程序运行的标准环境. ...

  10. Eclipse阿里云镜像源配置

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.什么是Eclipse Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过 ...