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; }//文件名
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 小型资源管理器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
TreeNode tn;
private void Form1_Load(object sender, EventArgs e)
{
//检索计算机上的所有逻辑驱动器的驱动器名称。
DriveInfo[] di = DriveInfo.GetDrives();
foreach (DriveInfo item in di)
{
tn = new TreeNode(item.Name);
tn.Tag = item.Name;
tv01.Nodes.Add(tn);
}
} //单击绑定文件和文件夹信息
private void tv01_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode tn= tv01.SelectedNode;
BingInfo(tn); } private void BingInfo(TreeNode tn)
{
//清空
lvlist.Items.Clear();
//绑定子目录
DirectoryInfo dic = new DirectoryInfo(tn.Tag.ToString());
DirectoryInfo[] info = dic.GetDirectories();
foreach (DirectoryInfo item in info)
{
TreeNode temp = new TreeNode();
temp.Text = item.Name;
temp.Tag = item.FullName;
tn.Nodes.Add(temp);
} //获取目录下文件列表
FileInfo[] fileinfo = dic.GetFiles();
//定义泛型集合存储文件信息
List<MyFile> files = new List<MyFile>();
//遍历文件列表
foreach (FileInfo it in fileinfo )
{ MyFile file = new MyFile();
file.FileName = it.Name;
file.FileLength = it.Length;
file.FileType = it.Extension;
file.FilePath = it.FullName;
files.Add(file);
}
//绑定到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 );
lvlist.Items.Add(lv);
} } //复制
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
//判断是否选中
if (lvlist .SelectedItems .Count ==)
{
return;
}
//提示用户选择目标文件夹
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
//源文件路径
string sourcepath = lvlist.SelectedItems[].SubItems[].Text;
//目标文件路径
string despath = null;
//如果正确选择目标位置,执行复制操作
if (result==DialogResult .OK )
{
despath = fbd.SelectedPath;
//lvlist表示显示文件信息的ListView对象
despath += "\\" + lvlist.SelectedItems[].SubItems[].Text;
//复制文件
File.Copy(sourcepath ,despath );
MessageBox.Show("复制成功!");
} } //删除
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{ string delectpath= lvlist.SelectedItems[].SubItems [].Text ;
File.Delete(delectpath);
MessageBox.Show("删除成功!");
} }
}

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

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

    初次接触到IO流,根据书本上的知识,加上自己的摸索,发现了一些好玩的事情.(书本上的知识或多或少,有时候不足以解决我们的问题!这时候我们就应该自己去求解!!! 所以我们学习的时候要抱有探索的精神,求知 ...

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

    小型资源管理器 private void LoadTreeView() { DirectoryInfo dir = new DirectoryInfo(@"E:\"); Direc ...

  3. 实现1.双击自动关联文件类型打开 2.PC所有驱动器 3.小型资源管理器

    感谢各位这里实现:双击自动关联文件类型打开 2.PC所有驱动器 3.小型资源管理器!! 首先主页面: 2.运用DriveInfo驱动器的信息:获得整个系统磁盘驱动!!,运用frorach循环遍历到Tr ...

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

    解决方案: 小总结: 用IO流,的file,DirectoryInfo的方法绑定Treeview控件上和删除,读取, 可以熟练掌握一下IO流 主页面: private void Form1_Load( ...

  5. 小型资源管理器之动态添加TreeView节点

    FrmMain主界面 using System; using System.Collections.Generic; using System.ComponentModel; using System ...

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

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

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

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

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

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

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

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

随机推荐

  1. FDO error:Failed to label layer(XXX) for class Default

    描述: A column was specified that does not exist. 出现这个问题的原因在于label features 展示的字段不存在或者为空,只要将其勾选去掉或者换个显 ...

  2. This task is currently locked by a running workflow and cannot be edited

    转自:http://geek.hubkey.com/2007/09/locked-workflow.html 转自:http://blogs.code-counsel.net/Wouter/Lists ...

  3. 【读书笔记】iOS网络-HTTP-请求内容

    一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二, ...

  4. JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

    一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...

  5. 朝花夕拾-android 自定义toast

    在一个只有你而且还未知的世界中,不去探索未知,死守一处,你到底在守什么呢? 作为一个目前的android程序员,可能过去写着delphi的代码,可能未来回去搭建服务器.不管怎样,你现在是一名安卓程序员 ...

  6. Mac上的软件使用介绍

    目录大纲: Drop to GIF Parallels Desktop 1.Drop to GIF 功能:将视频文件可以生产动态图gif文件 网址在github上:https://github.com ...

  7. JS高级程序设计2nd部分知识要点6

    DOM nodeType属性 所有类型节点都有的两个方法 1. cloneNode()用于创建调用这个方法的节点的一个完全相同的副本.

  8. 仅IE6中链接A的href为javascript协议时不能在当前页面跳转

    切页面时有时用链接A来替代按钮,这样做有几个好处 鼠标放上时默认有手状效果(不用添加cursor:pointer) 可以添加低版本IE都支持的伪类 如果点击时页面要整体刷新,即跳转,这时IE6则不尽人 ...

  9. 在VMware Workstation11虚拟机上安装黑苹果

    图文详解如何在VMware Workstation11虚拟机上安装黑苹果Mac OS X 10.10系统-网络教程与技术 -亦是美网络 http://www.yishimei.cn/network/5 ...

  10. linux多线程同步pthread_cond_XXX条件变量的理解

    在linux多线程编程中,线程的执行顺序是不可预知的,但是有时候由于某些需求,需要多个线程在启动时按照一定的顺序执行,虽然可以使用一些比较简陋的做法,例如:如果有3个线程 ABC,要求执行顺序是A-- ...