窗体搭建:ContextMenuStrip右键菜单,Treeview树形菜单,Listview控件

新建"我的文件"类:

public class MyFile
{
public float FileLength { get; set; }//文件长度(KB)
public string FileName { get; set; }//文件名
public string FilePath { get; set; }//文件路径
public string FileType { get; set; }//文件类型
}

主窗体全部代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void tvExplore_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node = this.tvExplore.SelectedNode;
this.BindInfo(node);
}
//将目录绑定到Treeview中
private void BindInfo(TreeNode node)
{
//清空
lvInfo.Items.Clear();
//绑定子目录
DirectoryInfo dir = new DirectoryInfo(node.Tag.ToString());
DirectoryInfo[] dirs = dir.GetDirectories();
foreach (DirectoryInfo di in dirs)
{
TreeNode temp = new TreeNode();
temp.Text = di.Name;
temp.Tag = di.FullName;
node.Nodes.Add(temp);
}
//获取目录下文件列表,dir是目录对象
FileInfo [] fi = dir.GetFiles();
//定义反省集合存储文件信息
List<MyFile> files = new List<MyFile>();
//遍历文件列表
foreach (FileInfo myFile in fi)
{
MyFile mf = new MyFile();
mf.FileName = myFile.Name;
mf.FileLength = myFile.Length;
mf.FileType = myFile.Extension;
mf.FilePath = myFile.FullName;
files.Add(mf);
}
//绑定到Listview中
foreach (MyFile em in files)
{
ListViewItem lv = new ListViewItem(em.FileName);
lv.SubItems.Add(em.FileLength.ToString());
lv.SubItems.Add(em.FileType);
lv.SubItems.Add(em.FilePath);
lvInfo.Items.Add(lv);
}
}
private void Form1_Load(object sender, EventArgs e)
{
//检索计算机上的所有逻辑驱动器的驱动器名称
DriveInfo[] di = DriveInfo.GetDrives();
foreach (DriveInfo item in di)
{
TreeNode tn = new TreeNode(item.Name);
tn.Tag = item.Name;
tvExplore.Nodes.Add(tn);
}
}
private void 复制文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
//判断是否选中,没选中return
if (lvInfo.SelectedItems.Count == )
{
MessageBox.Show("请选中一个文件");
return;
}
//提示用户选择目标文件夹
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
//源文件路径
string sourcepath = lvInfo.SelectedItems[].SubItems[].Text;
//目标文件路径
string despath = null;
//如果正确选择目标位置,执行复制操作
if (result == DialogResult.OK)
{
despath = fbd.SelectedPath;
//lvlist表示显示文件信息的ListView对象
despath += "\\" + lvInfo.SelectedItems[].SubItems[].Text;
//复制文件
try
{
File.Copy(sourcepath, despath);
MessageBox.Show("复制成功!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
} }
}
private void 删除文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
string delectpath = lvInfo.SelectedItems[].SubItems[].Text;
try
{
File.Delete(delectpath);
MessageBox.Show("删除成功!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
} }
}
}

C#资源管理器的更多相关文章

  1. 360安全卫士造成Sharepoint文档库”使用资源管理器打开“异常

           备注:企业用户还是少用360为妙        有客户反馈:部门里的XP SP2环境客户机全部异常,使用资源管理器打开Sharepoint文档库,看到的界面样式很老土,跟本地文件夹不一样 ...

  2. Windows 7 在资源管理器中显示软件快捷方式

    该方法是利用资源管理器中储存网络位置的文件夹实现的, 不需要修改注册表. 效果如图: 操作方法: 在资源管理器中打开路径 "%appdata%\Microsoft\Windows\Netwo ...

  3. 修复 Windows7 资源管理器左侧收藏夹无法展开问题

    相信大家在网上搜多到的解决办法大多数都是修改注册表,但是这个办法多数是无效的 1.运行regedit 2.展开到HKEY_CLASSES_ROOT\lnkfile 3.添加一个字符串值:IsShort ...

  4. [No00009C]Visual Studio在 解决方案资源管理器 里同步定位打开的文件

    标题的意思就是在使用VS的时候,需要我们打开编辑的文件跟解决方案的资源管理器同步显示,这样方便定位到我们在修改哪个文件. 设置如下: 工具——选项——项目和解决方案——在解决方案资源管理器中跟踪活动项 ...

  5. 怎样在Windows资源管理器中添加右键菜单以及修改右键菜单顺序

    有时,我们需要在Windows资源管理器的右键菜单中添加一些项,以方便使用某些功能或程序. 比如我的电脑上有一个免安装版的Notepad++,我想在所有文件的右键菜单中添加一项用Notepad++打开 ...

  6. VS2013.3 & VS2014 任务资源管理器

    Web 开发,特别是前端 Web 开发,正迅速变得像传统的后端开发一样复杂和精密.前端生成过程,可以囊括SASS 和LESS扩展.CSS/JS的压缩包.JSHint 或 JSLint的运行时 .或者更 ...

  7. Sql Server系列:Microsoft SQL Server Management Studio模板资源管理器

    模板资源管理器是Microsoft SQL Server Management Studio的一个组件,可以用来SQL代码模板,使用模板提供的代码,省去每次都要输入基本代码的工作. 使用模板资源管理器 ...

  8. Mac Pro 资源管理器 Double Commander“个性化设置” 备份

    操作系统自带的资源管理器,总是有些别扭的地方,在 Windows 系统下,我一般用 Total Commander(破解版)来作为替代品.现在换为 Mac 系统,自带的 Finer 也不怎么好用,连最 ...

  9. win7使用自带资源管理器来登陆FTP

    使用windows自带的资源管理器登陆FTP,其实很简单,打开计算机,在地址栏直接输入ftp://ftp.hostname即可. 但是这种方式需要每次输入ip地址,还要输入用户名和密码,比较麻烦.可能 ...

  10. Oracle资源管理器(二)-- 创建和使用数据库资源计划

    (参考 http://blog.csdn.net/mrluoe/article/details/7969436 -- 整理并实践通过) 第1步,创建3个用户 SQL> create user s ...

随机推荐

  1. es集群数据库~基本安装

    1 安装java环境   yum -y install java-1.8.0-openjdk*->需要最新的JDK环境1.82 安装 es   curl -L -O https://artifa ...

  2. python - 装饰器+描述符(给类添加属性且属性类型审核)

    装饰器+描述符 实现给一个类添加属性且对添加的时,对属性进行类型审核: def zsq(**kwargs): def fun(obj): for i,j in kwargs.items(): seta ...

  3. avloadingindicatorview 使用解析

    官方文档:https://github.com/81813780/AVLoadingIndicatorView 中文文档:https://www.helplib.com/GitHub/article_ ...

  4. Jade教程

    Jade 是一个高性能的模板引擎,它深受 Haml 影响,它是用 JavaScript 实现的,并且可以供 Node 使用. 如何在jade模板上加业务逻辑 if res.length==5 h1= ...

  5. 【转】如何安装JDK以及配置Java运行环境

    具体的参考这篇博文就好了~~!http://www.cnblogs.com/liu-en-ci/p/6743106.html

  6. 001_ansible通过堡垒机登录

    一. 之前一直通过跳板机登录线上服务器,ssh可以的,如下图所示 vim ~/.ssh/config ssh xx.xx.xx.xx线上服务器是可以的,但是ansible执行显示目标主机不可达,其实a ...

  7. Qt5.8 在windows下mingw静态编译

    官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...

  8. jmeter之ip欺骗

    说明:我看有的博客说官方文档是在jmeter2.5以上的版本有此功能的实现~ 我的是2.13版本,也可以实现 . 准备工作: 使用IP欺骗功能必须得本地有多个可用IP,通常普通的PC机只有一个物理网卡 ...

  9. OneNET麒麟座应用开发之二:串口读取PM25传感器数据

    作为环境数据监测站首先要获取大气中可吸入颗粒物的数据.为了检测PM25数据,我们采用北京海联信为的HLPM025K3型号传感器,该传感器使用激光法测量PM25和PM10的数据. 该型传感器的检测对象如 ...

  10. mockito简单教程

    注:本文来源:sdyy321的<mockito简单教程> 官网: http://mockito.org API文档:http://docs.mockito.googlecode.com/h ...