C#windows资源管理器.docx
- 文档编号:10719885
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:31
- 大小:128.46KB
C#windows资源管理器.docx
《C#windows资源管理器.docx》由会员分享,可在线阅读,更多相关《C#windows资源管理器.docx(31页珍藏版)》请在冰豆网上搜索。
C#windows资源管理器
效果图:
代码如下(有些没实现):
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Diagnostics;
usingSystem.Drawing;
usingSystem.IO;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace资源界面
{
publicpartialclassForm1:
Form
{
privatestringcurrentPath="";//当前路径
privatestring[]sources=newstring[100];//复制文件的源路径
privateboolIsMove=false;//是否移动
privateStack
privateStack
publicForm1()
{
InitializeComponent();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
地址栏ToolStripMenuItem.Checked=true;
状态栏ToolStripMenuItem1.Checked=true;
ListDrivers();
}
privatevoidListDrivers()
{
treeView1.Nodes.Clear();
currentPath="";
toolStripComboBox2.Text=currentPath;
listView1.Items.Clear();
DriveInfo[]drivers=DriveInfo.GetDrives();//搜索计算机上的驱动器的名称
foreach(DriveInfodriverindrivers)
{
ListViewItemitem=listView1.Items.Add(driver.Name,16);//在listview1显示文件名称
item.Name=driver.Name;
toolStripComboBox2.Items.Add(driver.Name);
toolStripComboBox2.ImageIndex=16;
TreeNoderootnode=newTreeNode(driver.Name,16,16);
treeView1.Nodes.Add(rootnode);
rootnode.Tag=driver.Name;//用tag属性把rootnode和driver保持联系
list_dir(rootnode);
}
}
//在treeview列出目录的子目录信息的方法
privatevoidlist_dir(TreeNodenode)
{
try
{
node.Nodes.Clear();
DirectoryInfodir=newDirectoryInfo(node.FullPath);
DirectoryInfo[]dir_children=dir.GetDirectories();
foreach(DirectoryInfodir_childindir_children)
{
TreeNodechildnode=newTreeNode(dir_child.Name,1,1);
node.Nodes.Add(childnode);
childnode.Tag=dir_child;
}
}
catch
{
}
}
//展开时列出选定目录的子目录信息
privatevoidtreeView1_BeforeExpand(objectsender,TreeViewCancelEventArgse)
{
list_dir(e.Node);
foreach(TreeNodenode_childine.Node.Nodes)
{
list_dir(node_child);
}
}
privatevoidlistview_look(stringnewPath)
{
if(newPath=="")
return;
else
{
try
{
DirectoryInfocurrentDir=newDirectoryInfo(newPath);
DirectoryInfo[]dirs=currentDir.GetDirectories();//获取目录
FileInfo[]files=currentDir.GetFiles();//获取文件
//删除ImageList中的程序图标
foreach(ListViewItemiteminlistView1.Items)
{
if(item.Text.EndsWith(".exe"))//是程序
{
item.ImageIndex=42;
imageList1.Images.RemoveByKey(item.Text);
imageList2.Images.RemoveByKey(item.Text);
}
}
listView1.Items.Clear();
//列出文件夹
foreach(DirectoryInfodirindirs)
{
ListViewItemdirItem=listView1.Items.Add(dir.Name,1);
dirItem.Name=dir.FullName;
dirItem.SubItems.Add("");
dirItem.SubItems.Add("文件夹");
dirItem.SubItems.Add(dir.LastWriteTimeUtc.ToString());
}
//列出文件
foreach(FileInfofileinfiles)
{
ListViewItemfileItem=listView1.Items.Add(file.Name,1);
fileItem.Name=file.FullName;
fileItem.SubItems.Add(file.Length.ToString()+"字节");
fileItem.SubItems.Add(file.Extension);
fileItem.SubItems.Add(file.LastWriteTimeUtc.ToString());
}
currentPath=newPath;
toolStripComboBox2.Text=currentPath;//更新地址栏
toolStripComboBox2.ImageIndex=1;
toolStripStatusLabel1.Text=listView1.Items.Count+"个对象";//更新状态栏
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}
privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse)
{
listview_look(e.Node.FullPath);
}
privatevoidForm1_SizeChanged(objectsender,EventArgse)
{
this.toolStripComboBox2.Width=this.Width-(this.toolStripLabel1.Width+this.toolStripButton1.Width+70);
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
toolStripStatusLabel2.Text=DateTime.Now.ToString();
}
#region菜单栏
privatevoid退出XToolStripMenuItem_Click(objectsender,EventArgse)
{
Close();
}
privatevoid文件夹ToolStripMenuItem1_Click(objectsender,EventArgse)
{
CreateFolder();
}
privatevoid编辑EToolStripMenuItem_MouseDown(objectsender,MouseEventArgse)
{
if(listView1.SelectedItems.Count==0)
{
剪切TToolStripMenuItem.Enabled=false;
复制CToolStripMenuItem.Enabled=false;
}
else
{
剪切TToolStripMenuItem.Enabled=true;
复制CToolStripMenuItem.Enabled=true;
}
}
privatevoid文件FToolStripMenuItem_MouseDown(objectsender,MouseEventArgse)
{
if(listView1.SelectedItems.Count==0)
{
toolStripMenuItem_open.Visible=false;
toolStripMenuItem_cut.Visible=false;
toolStripMenuItem_copy.Visible=false;
新建NToolStripMenuItem.Visible=true;
toolStripMenuItem_paste.Visible=true;
DELET.Enabled=false;
ToolStripMenuItem_rename.Enabled=false;
PToolStripMenuItem_shuxing.Enabled=false;
}
else
{
toolStripMenuItem_open.Visible=true;
toolStripMenuItem_cut.Visible=true;
toolStripMenuItem_copy.Visible=true;
新建NToolStripMenuItem.Visible=false;
toolStripMenuItem_paste.Visible=true;
DELET.Enabled=true;
ToolStripMenuItem_rename.Enabled=true;
PToolStripMenuItem_shuxing.Enabled=true;
}
}
#endregion
#region鼠标右键菜单
privatevoid刷新ToolStripMenuItem_Click(objectsender,EventArgse)
{
listview_look(currentPath);
}
privatevoidlistView1_MouseUp(objectsender,MouseEventArgse)
{
Pointpoint=listView1.PointToClient(Cursor.Position);
ListViewItemitem=listView1.GetItemAt(point.X,point.Y);//获得鼠标坐标处的ListViewItem
ContextMenuStripcmp;
if(item==null)//当前位置没有ListViewItem
{
cmp=contextMenuStrip1;
ContextMenuStrip=cmp;
}
else
{
cmp=contextMenuStrip2;
ContextMenuStrip=cmp;
}
}
privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse)
{
Open();
}
privatevoid剪切ToolStripMenuItem_Click(objectsender,EventArgse)
{
Cut();
}
privatevoid粘贴ToolStripMenuItem_Click(objectsender,EventArgse)
{
Paste();
}
privatevoid删除ToolStripMenuItem_Click(objectsender,EventArgse)
{
Delete();
}
privatevoid复制ToolStripMenuItem_Click(objectsender,EventArgse)
{
Copy();
}
#endregion
#region 工具栏
privatevoid上一级SToolStripButton_Click(objectsender,EventArgse)
{
if(currentPath=="")
return;
DirectoryInfodir=newDirectoryInfo(currentPath);
TreeNodedirnode=newTreeNode(dir.Name);
dirnode.Tag=dir.Name;
if(dir.Parent!
=null)
{
listview_look(dir.Parent.FullName);
}
else
{
ListDrivers();
}
}
//点击转到按钮事件
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
{
stringnewPath=toolStripComboBox2.Text;
if(newPath=="")
return;
listview_look(newPath);
}
privatevoidtoolStripComboBox2_KeyPress(objectsender,KeyPressEventArgse)
{
if(e.KeyChar==(char)Keys.Enter)
{
stringnewPath=toolStripComboBox2.Text;
if(newPath=="")
return;
listview_look(newPath);
}
}
privatevoid关于AToolStripMenuItem_Click(objectsender,EventArgse)
{
AboutBox1about=newAboutBox1();
about.Show();
}
privatevoidpictureBox1_Click(objectsender,EventArgse)
{
Process.Start("
}
privatevoid后退ToolStripButton_ButtonClick(objectsender,EventArgse)
{
if(backwardStack.Count==0)
{
return;
}
stringbackToPath=backwardStack.Pop();
forwardStack.Push(backToPath);
//获取backtoPath的父级路径
intindex=backToPath.LastIndexOf(backToPath);
stringparentPath=backToPath.Remove(index);
//加载父级项
DirectoryInfodir=newDirectoryInfo(parentPath);
DirectoryInfo[]dirs=dir.GetDirectories();
this.listView1.Items.Clear();
foreach(DirectoryInfofolderindirs)
{
if(folder.Attributes==(FileAttributes.Hidden|FileAttributes.System|FileAttributes.Directory))
{
continue;
}
ListViewItemitem=newListViewItem();
item.Text=folder.Name;
item.ToolTipText=folder.FullName;
item.ImageIndex=1;
this.listView1.Items.Add(item);
}
}//未完成
privatevoid前进ToolStripButton_ButtonClick(objectsender,EventArgse)
{
if(forwardStack.Count==0)
{
return;
}
stringgoToPath=forwardStack.Pop();
backwardStack.Push(goToPath);
DirectoryInfodir=newDirectoryInfo(goToPath);
DirectoryInfo[]dirs=dir.GetDirectories();
this.listView1.Items.Clear();
foreach(DirectoryInfofolderindirs)
{
if(folder.Attributes==(FileAttributes.Hidden|FileAttributes.System|FileAttributes.Directory))
{
continue;
}
ListViewItemitem=newListViewItem();
item.Text=folder.Name;
item.ToolTipText=folder.FullName;
item.ImageIndex=1;
this.listView1.Items.Add(item);
}
}//未完成
privatevoidlistView1_DoubleClick(objectsender,EventArgse)
{
//将当前路径压入后退栈
/*backwardStack.Push(this.listView1.SelectedItems[0].ToolTipText);
DirectoryInfodir=newDirectoryInfo(listView1.SelectedItems[0].ToolTipText);
DirectoryInfo[]dirs=dir.GetDirectories();
this.listView1.Items.Clear();
foreach(DirectoryInfofolderindirs)
{
ListViewItemitem=newListViewItem();
item.Text=folder.Name;
item.ToolTipText=folder.FullName;
item.ImageIndex=1;
this.listView1.Items.Add(item);
}
*/
}//未完成
privatevoid工具栏ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(工具栏ToolStripMenuItem.Checked)
{
toolStrip1.Visible=false;
工具栏ToolStripMenuItem.Checked=false;
}
else
{
toolStrip1.Visible=true;
工具栏ToolStripMenuItem.Checked=true;
}
}
privatevoid状态栏ToolStripMenuItem1_Click(objectsender,EventArgse)
{
if(状态栏ToolStripMenuItem1.Checked)
{
statusStrip1.Visible=false;
状态栏ToolStripMenuItem1.Checked=false;
}
else
{
statusStrip1.Visible=true;
状态栏ToolStripMenuItem1.Checked=true;
}
}
privatevoid地址栏ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(地址栏ToolStripMenuItem.Checked)
{
toolStrip2.Visible=false;
地址栏ToolStripMenuItem.Checked=false;
}
else
{
toolStrip2.Visible=true;
地址栏ToolStripMenuItem.Checked=true;
}
}
privatevoid缩略图ToolStripMenuItem_Click(objectsender,EventArgse)
{
listView1.View=View.Tile;
}
privatevoid平铺ToolStripMenuItem_Click(objectsender,EventArgse)
{
listView1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- windows 资源管理器