IO流的应用————小型资源管理器

小型资源管理器

    

       

private void LoadTreeView()
{
  DirectoryInfo dir = new DirectoryInfo(@"E:\");
  DirectoryInfo[] dirs= dir.GetDirectories();
  foreach (DirectoryInfo item in dirs)
  {
    TreeNode tn = new TreeNode();
    tn.Text = item.Name;
    tn.Tag = item.FullName;
    this.treeView1.Nodes.Add(tn);
  }

}
private void Form1_Load(object sender, EventArgs e)
{
  LoadTreeView();

}
private void BindInfo(TreeNode node)
{
  DirectoryInfo dir = new DirectoryInfo(node.Tag.ToString());
  DirectoryInfo[] dirs = dir.GetDirectories();
  foreach (DirectoryInfo item in dirs)
  {
    TreeNode tn = new TreeNode();
    tn.Text = item.Name;
    tn.Tag = item.FullName;
    node.Nodes.Add(tn);
  }
  FileInfo[] fileInfo = dir.GetFiles();
  List<MyFile> files = new List<MyFile>();
  foreach (FileInfo item in fileInfo)
  {
    MyFile file = new MyFile();
    file.FileName = item.Name;
    float value = item.Length;
    file.FileLength = float.Parse(Math.Round(value / 1024, 2).ToString());
    file.FileType = item.Extension;
    file.FilePath = item.FullName;
    files.Add(file);
  }
  if (this.listView1.Items!=null)
  {
    this.listView1.Items.Clear();
  }
  foreach (MyFile item in files)
  {
    ListViewItem lvItem = new ListViewItem(item.FileName);
    lvItem.SubItems.Add(item.FileLength.ToString());
    lvItem.SubItems.Add(item.FileType);
    lvItem.SubItems.Add(item.FilePath);
    this.listView1.Items.Add(lvItem);
  }
}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{

    TreeNode node = this.treeView1.SelectedNode;
    BindInfo(node);

}

private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
  DialogResult result= folderBrowserDialog1.ShowDialog();
  if (result==DialogResult.OK)
  {
    string sourcePath = this.listView1.SelectedItems[0].SubItems[3].Text;
    string desPath = folderBrowserDialog1.SelectedPath;
    desPath += "\\" + this.listView1.SelectedItems[0].SubItems[0].Text;
    File.Copy(sourcePath, desPath);
    MessageBox.Show("复制成功!!!");
  }
}

private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
    string sourcePath = this.listView1.SelectedItems[0].SubItems[3].Text;
    File.Delete(sourcePath);
    MessageBox.Show("删除成功!!");
    TreeNode node = this.treeView1.SelectedNode;
    BindInfo(node);
}

时间: 2024-12-15 01:59:46

IO流的应用————小型资源管理器的相关文章

初识IO流之小型资源管理器

初次接触到IO流,根据书本上的知识,加上自己的摸索,发现了一些好玩的事情.(书本上的知识或多或少,有时候不足以解决我们的问题!这时候我们就应该自己去求解!!! 所以我们学习的时候要抱有探索的精神,求知若渴是帮助我们获取更多知识的一种积极的精神态度,需要保持) 小型资源管理器 该项目主要是为了加载电脑磁盘中存在的所有文件夹和文件(directory,file) 这时候我遇到了第一个问题:书本上只有将指定的磁盘设为根节点,在窗体TreeView中添加该磁盘中的文件夹 (我去,那如果我的电脑上分了几十

IO流之小型资源管理器概述

小型资源管理器完成示例图: 实现思路及关键代码用于参考 1.创建一个根节点 2.加载路径文件 3.加载所以文件 4.获取节点 5.文件或文件夹的复制

自己动手做一个小型“资源管理器”吧

自己动手做一个小型“资源管理器”吧 注:tvDirectory是treeView控件,lvDirectory是listView控件 首先搭建一下界面: 左边是treeView控件,右边是listView控件.(listView的网格线只需把GridLins设置成True就可以了.) 由于要用到IO流,所以别忘了导入命名空间:using System.IO; 我们只要创建一个文件类就可以了: 1 public class MyFile 2 { 3 //文件长度 4 public float Fil

C# 小型资源管理器

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 小型资源管理器 { public class MyFile { public float FileLength { get; set; }//文件长度(KB) public string FileName { get; set; }//文件名 pu

小型资源管理器,IO操作,读取和写入文件和目录的常用操作

解决方案: 小总结: 用IO流,的file,DirectoryInfo的方法绑定Treeview控件上和删除,读取, 可以熟练掌握一下IO流 主页面: 1 private void Form1_Load(object sender, EventArgs e) 2 { 3 4 //创建一个根节点 5 TreeNode root = new TreeNode(); 6 root.Text = "D:\\"; //显示的是文件夹名称(单独名称) 7 root.Tag = "D:\\

第九章,小型资源管理器

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace SmallResourceManager 8 { 9 public class MyFile 10 { 11 //文件名 12 public string Name { get;set; } 13 //文件类型 14 p

小型资源管理器

private void Form1_Load(object sender, EventArgs e)        {            //添加根            TreeNode tr = new TreeNode();            tr.Tag = "D:\\";  ///完整路径                tr.Text="D:\\";             treeView1.Nodes.Add(tr);        } pr

10.9-全栈Java笔记:装饰器模式构建IO流体系

装饰器模式 装饰器模式是GOF23种设计模式中较为常用的一种模式.它可以实现对原有类的包装和装饰,使新的类具有更强的功能. 我这里有智能手机Iphone, 我们可以通过加装投影组件,实现原有手机功能的扩展.这就是一种"装饰器模式". 我们在未来普通人加装"外骨骼"装饰,让普通人具有力扛千斤的能力,也是一种"装饰器模式". [图] 手机经过投影套件"装饰后",成为功能更强的"投影手机" [示例1]装饰器模式代

小项目:mini资源管理器【使用IO流:包含(Directory与DirectoryInfo、File与FileInfo的用法)】

主界面是这样的 1.在点击查询引发的事件时把TextBox.Text输入的目录地址加载到TreeList控件里. private void btnSelect_Click(object sender, EventArgs e) { //避免重复加载tv.Nodes.Clear(); ////Load事件手动添加根节点TreeNode tn = new TreeNode(); tn.Text = tbxName.Text;//根节点名字:tn.Tag = tbxName.Text;//根节点物理地