zoukankan      html  css  js  c++  java
  • (深入.Net平台和C#编程)第九章.上机练习.20170417

    ==============================================entity==============================================

    -------------------------------------------MyFile类-------------------------------------------

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace ResourceManage.entity
     8 {
     9     /// <summary>
    10     /// 文件类
    11     /// </summary>
    12    public class MyFile
    13     {
    14        /// <summary>
    15        /// 文件名
    16        /// </summary>
    17        public string FileName { get; set; }
    18        /// <summary>
    19        /// 文件大小
    20        /// </summary>
    21        public long FileLength { get; set; }
    22        /// <summary>
    23        /// 文件类型
    24        /// </summary>
    25        public string FileType { get; set; }
    26        /// <summary>
    27        /// 文件路径
    28        /// </summary>
    29        public string FilePath { get; set; }
    30     }
    31 }
    MyFile

    ==============================================窗体==============================================

    -------------------------------------------frmMain类-------------------------------------------

      1 using ResourceManage.entity;
      2 using System;
      3 using System.Collections.Generic;
      4 using System.ComponentModel;
      5 using System.Data;
      6 using System.Drawing;
      7 using System.IO;
      8 using System.Linq;
      9 using System.Text;
     10 using System.Threading.Tasks;
     11 using System.Windows.Forms;
     12 
     13 namespace ResourceManage
     14 {
     15     public partial class frmMain : Form
     16     {
     17         public frmMain()
     18         {
     19             InitializeComponent();
     20         }
     21 
     22         private void frmMain_Load(object sender, EventArgs e)
     23         {
     24             Init();
     25             
     26         }
     27 
     28         /// <summary>
     29         /// 初始化
     30         /// </summary>
     31         public void Init()
     32         {
     33             //添加三个根节点
     34             tvList.Nodes.Add(@"C:");
     35             tvList.Nodes.Add(@"D:");
     36             tvList.Nodes.Add(@"E:");
     37             for (int i = 0; i < tvList.Nodes.Count; i++)
     38             {
     39                 tvList.Nodes[i].Tag = tvList.Nodes[i].Text;
     40             }
     41             try
     42             {
     43                 //遍历所有树节点(相当于盘)
     44                 for (int i = 0; i < tvList.Nodes.Count; i++)
     45                 {
     46                     DirectoryInfo di = new DirectoryInfo(tvList.Nodes[i].Text);
     47                     //返回当前目录的子目录
     48                     DirectoryInfo[] sonDi = di.GetDirectories();
     49                     foreach (DirectoryInfo item in sonDi)
     50                     {
     51                         //创建节点对象
     52                         TreeNode tn = new TreeNode();
     53                         //给节点赋属性
     54                         tn.Text = item.Name;
     55                         tn.Tag = item.FullName;
     56                         //树节点添加子节点
     57                         tvList.Nodes[i].Nodes.Add(tn);
     58 
     59                     }
     60                 }
     61 
     62                 //foreach (TreeNode item in tvList.Nodes)
     63                 //{
     64                 //    for (int i = 0; i < item.Nodes.Count; i++)
     65                 //    {
     66                         
     67                 //    }
     68                 //}
     69             }
     70             catch (Exception ex)
     71             {
     72             }
     73         }
     74 
     75         /// <summary>
     76         /// 绑定XX文件夹下的所有文件信息
     77         /// </summary>
     78         public void BangSonNodes()
     79         {
     80             try
     81             {
     82 
     83                 DirectoryInfo di = new DirectoryInfo(tvList.SelectedNode.Tag.ToString());
     84                 //获取选中文件夹下文件
     85                 FileInfo[] fis = di.GetFiles();
     86                 List<MyFile> files = new List<MyFile>();
     87                 foreach (FileInfo file in fis)
     88                 {
     89                     MyFile mf = new MyFile();
     90                     mf.FileName = file.Name;
     91                     mf.FilePath = file.FullName;
     92                     mf.FileType = file.Extension;
     93                     mf.FileLength = file.Length;
     94                     files.Add(mf);
     95                 }
     96                 lvList.Items.Clear();
     97 
     98                 foreach (MyFile item in files)
     99                 {
    100                     ListViewItem lvi = new ListViewItem(item.FileName);
    101                     lvi.SubItems.Add(item.FileLength.ToString());
    102                     lvi.SubItems.Add(item.FileType);
    103                     lvi.SubItems.Add(item.FilePath);
    104                     lvList.Items.Add(lvi);
    105                 }
    106             }
    107             catch (Exception ex)
    108             {
    109                 MessageBox.Show(ex.Message);
    110             }
    111         }
    112 
    113         private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
    114         {
    115             BangSonNodes();
    116         }
    117 
    118         private void tvList_AfterExpand(object sender, TreeViewEventArgs e)
    119         {
    120             foreach (TreeNode node in tvList.SelectedNode.Nodes)
    121             {
    122                 
    123             }
    124         }
    125 
    126         /// <summary>
    127         /// 右键删除
    128         /// </summary>
    129         /// <param name="sender"></param>
    130         /// <param name="e"></param>
    131         private void tsmiDelete_Click(object sender, EventArgs e)
    132         {
    133             string oName = lvList.SelectedItems[0].Text;
    134             string path = lvList.SelectedItems[0].SubItems[3].Text;
    135             int index = oName.IndexOf(".");
    136             string nName = oName.Substring(0, index);
    137             DialogResult result = MessageBox.Show("是否删除" + nName, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    138             if (result == DialogResult.Yes)
    139             {
    140                 File.Delete(path);
    141                 MessageBox.Show("删除成功");
    142                 BangSonNodes();
    143             }
    144         }
    145 
    146         /// <summary>
    147         /// 右键复制
    148         /// </summary>
    149         /// <param name="sender"></param>
    150         /// <param name="e"></param>
    151         private void tsmiCopy_Click(object sender, EventArgs e)
    152         {
    153             FolderBrowserDialog fbd = new FolderBrowserDialog();
    154             DialogResult result = fbd.ShowDialog();
    155             string sourcePath = lvList.SelectedItems[0].SubItems[3].Text;
    156             string desPath = null;
    157             if (result == DialogResult.OK)
    158             {
    159                 desPath = fbd.SelectedPath;
    160                 desPath += "/" + lvList.SelectedItems[0].SubItems[0].Text;
    161                 File.Copy(sourcePath, desPath);
    162                 MessageBox.Show("复制成功");
    163             }
    164         }
    165     }
    166 }
    frmMain

  • 相关阅读:
    分小组
    抽签
    快速排序
    Zookeeper一致性协议原理Zab
    Zookeeper架构、ZAB协议、选举
    spring AOP
    spring bean生命周期
    [LeetCode] 35. Search Insert Position ☆(丢失的数字)
    [LeetCode] 29. Divide Two Integers(不使用乘除取模,求两数相除) ☆☆☆
    代理模式和装饰器模式的区别
  • 原文地址:https://www.cnblogs.com/1-2-3-4/p/6725811.html
Copyright © 2011-2022 走看看