写了一个小型资源管理器,拿出来分享。
1.效果图
可实现右键复制和删除
关键代码:
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 Day_01
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node = this.treeView1.SelectedNode;
this.BindInfo(node);
}
private void BindInfo(TreeNode node) {
node.Nodes.Clear();
DirectoryInfo directoryInfo = new DirectoryInfo(node.Tag.ToString());
DirectoryInfo[] dirs = directoryInfo.GetDirectories();
foreach (DirectoryInfo item in dirs)
{
TreeNode temp = new TreeNode();
temp.Text = item.Name;
temp.Tag = item.FullName;
node.Nodes.Add(temp);
}
FileInfo[] fileinfo = directoryInfo.GetFiles();
List<MyFile> files = new List<MyFile>();
foreach (FileInfo myfile in fileinfo)
{
MyFile file = new MyFile();
file.FileName = myfile.Name;
file.FileLength = myfile.Length;
file.FileType = myfile.Extension;
file.FilePath = myfile.FullName;
files.Add(file);
}
listView1.Items.Clear();
foreach (MyFile item in files)
{
ListViewItem lvw = new ListViewItem(item.FileName);
lvw.Tag = item;
lvw.SubItems.AddRange(new string[] { item.FileLength.ToString() });
lvw.SubItems.AddRange(new string[] { item.FileType });
lvw.SubItems.AddRange(new string[] { item.FilePath });
listView1.Items.Add(lvw);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count==0)
{
return;
}
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string sourcePath = listView1.SelectedItems[0].SubItems[3].Text;
string desPath = null;
if (result==DialogResult.OK)
{
desPath = fbd.SelectedPath;
desPath += "\\" + listView1.SelectedItems[0].SubItems[0].Text;
File.Copy(sourcePath, desPath);
MessageBox.Show("复制成功!");
}
}
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count == 0)
{
return;
}
string sourcePath = listView1.SelectedItems[0].SubItems[3].Text;
File.Delete(sourcePath);
MessageBox.Show("删除成功!");
this.listView1.SelectedItems[0].Remove();
}
}
}