实例介绍
【实例简介】
【实例截图】
【核心代码】
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; using System.Collections; using System.Threading; namespace FileManage { public partial class frmMain : Form { #region 定义全局变量,并实例化公共类对象 private bool blCopy = false; //标识是否复制文件 private bool blCut = false; //标识是否剪切文件 public static string strFullName = ""; //记录选择的文件名及路径 public static ArrayList list = new ArrayList(); //记录选择的项 CommonClass.BaseClass baseclass = new FileManage.CommonClass.BaseClass(); #endregion public frmMain() { InitializeComponent(); } //窗体加载时在树控件中显示所有磁盘驱动器 private void frmMain_Load(object sender, EventArgs e) { MessageBox.Show("本软件涉及到对文件的各种操作,请在运行之前备份好您的磁盘文件,对于丢失文件的,我们不负任何法律责任!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); //获得本地磁盘的所有驱动器 string[] strDrives = Environment.GetLogicalDrives(); tvLook.BeginUpdate(); //向树控件中添加本地磁盘目录 foreach (string strDrive in strDrives) { TreeNode tnMyDrives = new TreeNode(strDrive); tvLook.Nodes.Add(tnMyDrives); } tvLook.EndUpdate(); } //在树控件中选择节点时,展开选中节点,并在右边显示该文件夹所包含的所有文件 private void tvLook_AfterSelect(object sender, TreeViewEventArgs e) { baseclass.GetPath(e.Node.FullPath, imageList1, lvInfo, 0); } //在指定目录下新建文件 private void 新建文件ToolStripMenuItem_Click(object sender, EventArgs e) { baseclass.NewFile(lvInfo, imageList1, DateTime.Now.ToString("yyyyMMddhhmmss") ".txt", 0); } //在指定目录下新建文件夹 private void 新建文件夹ToolStripMenuItem_Click(object sender, EventArgs e) { baseclass.NewFile(lvInfo, imageList1, DateTime.Now.ToString("yyyyMMddhhmmss"), 1); } //对指定文件夹中的内容进行全选 private void 全选ToolStripMenuItem_Click(object sender, EventArgs e) { for (int i = 0; i < lvInfo.Items.Count; i ) { lvInfo.Items[i].Selected = true; } tsslabInfo.Text = lvInfo.Items.Count "个对象"; } //复制文件及文件夹标识 private void 复制ToolStripMenuItem_Click(object sender, EventArgs e) { blCopy = true; 粘贴ToolStripMenuItem.Enabled = true; blCut = false; ISSelectFile(); } //剪切文件及文件夹标识 private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e) { blCut = true; 粘贴ToolStripMenuItem.Enabled = true; blCopy = false; ISSelectFile(); } //根据复制或剪切文件及文件夹标识确定执行粘贴操作 private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e) { if (blCopy == true) { baseclass.CopyFile(lvInfo, imageList1, list, strFullName, CommonClass.BaseClass.AllPath, 0,toolStripProgressBar1); for (int i = 0; i < list.Count; i ) { baseclass.CopyDir(CommonClass.BaseClass.AllPath list[i].ToString(), strFullName list[i].ToString(), 0); } } else if (blCut == true) { baseclass.CopyFile(lvInfo, imageList1, list, strFullName, CommonClass.BaseClass.AllPath, 1, toolStripProgressBar1); for (int i = 0; i < list.Count; i ) { baseclass.CopyDir(CommonClass.BaseClass.AllPath list[i].ToString(), strFullName list[i].ToString(), 1); } blCut = false; 粘贴ToolStripMenuItem.Enabled = false; } else { MessageBox.Show("没有需要粘贴的内容!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } 刷新ToolStripMenuItem_Click(sender, e); toolStripProgressBar1.Value = 0; } //删除文件及文件夹 private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { try { baseclass.DeleteFile(lvInfo, imageList1, toolStripProgressBar1); toolStripProgressBar1.Value = 0; } catch (Exception ex) { MessageBox.Show(ex.Message); } } #region 重命名文件及文件夹 private void 重命名ToolStripMenuItem_Click(object sender, EventArgs e) { if (lvInfo.SelectedItems.Count != 0) { lvInfo.SelectedItems[0].BeginEdit(); } } private void lvInfo_AfterLabelEdit(object sender, LabelEditEventArgs e) { baseclass.RepeatFile(lvInfo, imageList1, lvInfo.SelectedItems[0].Text, e.Label); } //批量重命名文件 private void 批量重命名ToolStripMenuItem_Click(object sender, EventArgs e) { frmRepeat frmrepeat = new frmRepeat(); frmrepeat.ShowDialog(); } #endregion //刷新文件夹 private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e) { baseclass.GetListViewItem(CommonClass.BaseClass.AllPath, imageList1, lvInfo); } //控制复制、剪切、删除、重命名菜单项的可用状态 private void lvInfo_Click(object sender, EventArgs e) { if (lvInfo.Items.Count > 0) { if (lvInfo.SelectedIndices.Count != 0) { 复制ToolStripMenuItem.Enabled = 剪切ToolStripMenuItem.Enabled = 删除ToolStripMenuItem.Enabled = 重命名ToolStripMenuItem.Enabled = true; tsslabInfo.Text = "选定" lvInfo.SelectedIndices.Count "个对象"; } } } #region 以各种方式显示文件 //以缩略图方式显示文件 private void 缩略图ToolStripMenuItem_Click(object sender, EventArgs e) { lvInfo.View = View.LargeIcon; 缩略图ToolStripMenuItem.Text =缩略图ToolStripMenuItem1.Text = "●缩略图"; 平铺ToolStripMenuItem.Text = 平铺ToolStripMenuItem1.Text = "平铺"; 图标ToolStripMenuItem.Text = 图标ToolStripMenuItem1.Text = "图标"; 列表ToolStripMenuItem.Text = 列表ToolStripMenuItem1.Text = "列表"; 详细信息ToolStripMenuItem.Text = 详细信息ToolStripMenuItem1.Text = "详细信息"; } private void 缩略图ToolStripMenuItem1_Click(object sender, EventArgs e) { 缩略图ToolStripMenuItem_Click(sender, e); } //以平铺方式显示文件 private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e) { lvInfo.View = View.Tile; 缩略图ToolStripMenuItem.Text = 缩略图ToolStripMenuItem1.Text = "缩略图"; 平铺ToolStripMenuItem.Text = 平铺ToolStripMenuItem1.Text = "●平铺"; 图标ToolStripMenuItem.Text = 图标ToolStripMenuItem1.Text = "图标"; 列表ToolStripMenuItem.Text = 列表ToolStripMenuItem1.Text = "列表"; 详细信息ToolStripMenuItem.Text = 详细信息ToolStripMenuItem1.Text = "详细信息"; } private void 平铺ToolStripMenuItem1_Click(object sender, EventArgs e) { 平铺ToolStripMenuItem_Click(sender, e); } //以图标方式显示文件 private void 图标ToolStripMenuItem_Click(object sender, EventArgs e) { lvInfo.View = View.SmallIcon; 缩略图ToolStripMenuItem.Text = 缩略图ToolStripMenuItem1.Text = "缩略图"; 平铺ToolStripMenuItem.Text = 平铺ToolStripMenuItem1.Text = "平铺"; 图标ToolStripMenuItem.Text = 图标ToolStripMenuItem1.Text = "●图标"; 列表ToolStripMenuItem.Text = 列表ToolStripMenuItem1.Text = "列表"; 详细信息ToolStripMenuItem.Text = 详细信息ToolStripMenuItem1.Text = "详细信息"; } private void 图标ToolStripMenuItem1_Click(object sender, EventArgs e) { 图标ToolStripMenuItem_Click(sender, e); } //以列表方式显示文件 private void 列表ToolStripMenuItem_Click(object sender, EventArgs e) { lvInfo.View = View.List; 缩略图ToolStripMenuItem.Text = 缩略图ToolStripMenuItem1.Text = "缩略图"; 平铺ToolStripMenuItem.Text = 平铺ToolStripMenuItem1.Text = "平铺"; 图标ToolStripMenuItem.Text = 图标ToolStripMenuItem1.Text = "图标"; 列表ToolStripMenuItem.Text = 列表ToolStripMenuItem1.Text = "●列表"; 详细信息ToolStripMenuItem.Text = 详细信息ToolStripMenuItem1.Text = "详细信息"; } private void 列表ToolStripMenuItem1_Click(object sender, EventArgs e) { 列表ToolStripMenuItem_Click(sender, e); } //以详细信息方式显示文件 private void 详细信息ToolStripMenuItem_Click(object sender, EventArgs e) { lvInfo.View = View.Details; 缩略图ToolStripMenuItem.Text = 缩略图ToolStripMenuItem1.Text = "缩略图"; 平铺ToolStripMenuItem.Text = 平铺ToolStripMenuItem1.Text = "平铺"; 图标ToolStripMenuItem.Text = 图标ToolStripMenuItem1.Text = "图标"; 列表ToolStripMenuItem.Text = 列表ToolStripMenuItem1.Text = "列表"; 详细信息ToolStripMenuItem.Text = 详细信息ToolStripMenuItem1.Text = "●详细信息"; } private void 详细信息ToolStripMenuItem1_Click(object sender, EventArgs e) { 详细信息ToolStripMenuItem_Click(sender, e); } #endregion //双击ListView控件中的项进行打开 private void lvInfo_DoubleClick(object sender, EventArgs e) { baseclass.GetPath(lvInfo.SelectedItems[0].Text, imageList1, lvInfo, 1); } //返回上一级目录 private void tsbtnBack_Click(object sender, EventArgs e) { baseclass.backPath(lvInfo, imageList1); } //单击ListView控件的标头时,对项进行排序 private void lvInfo_ColumnClick(object sender, ColumnClickEventArgs e) { try { lvInfo.ListViewItemSorter = new CommonClass.ListViewItemComparer(e.Column); } catch { } } #region 搜索文件或文件夹 //搜索文件或文件夹 private void tsbtnSearch_Click(object sender, EventArgs e) { lvInfo.Items.Clear(); if (ttxtKeyWord.Text != "") { baseclass.SearchFile(lvInfo, ttxtKeyWord.Text); } else { MessageBox.Show("搜索关键字不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 刷新ToolStripMenuItem_Click(sender, e); } toolStripProgressBar1.Value = 0; } //在搜索关键字文本框中按下回车键时,执行搜索文件或文件夹操作 private void ttxtKeyWord_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { tsbtnSearch_Click(sender, e); } } #endregion #region 退出当前应用程序 //单击“关闭”菜单项 private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } //单击“*”按钮 private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { 关闭ToolStripMenuItem_Click(sender, e); } #endregion //监视对象选中状态 private void timer1_Tick(object sender, EventArgs e) { if (lvInfo.SelectedIndices.Count != 0) { tsslabInfo.Text = "选定" lvInfo.SelectedIndices.Count "个对象"; list = baseclass.getFiles(lvInfo); } else tsslabInfo.Text = lvInfo.Items.Count "个对象"; } //弹出“关于”对话框 private void 关于文件批量处理器ToolStripMenuItem_Click(object sender, EventArgs e) { AboutBox aboutbox = new AboutBox(); aboutbox.ShowDialog(); } #region 解压缩文件 //压缩文件及文件夹 private void 压缩文件ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (saveFileDialog.ShowDialog() == DialogResult.OK) { toolStripProgressBar1.Maximum = list.Count; if (list.Count > 1) { string strNewPath = DateTime.Now.ToString("yyyyMMddhhmmss"); baseclass.CopyFile(lvInfo, imageList1, list, CommonClass.BaseClass.AllPath, CommonClass.BaseClass.AllPath strNewPath "\\", 0, toolStripProgressBar1); for (int i = 0; i < list.Count; i ) { baseclass.CopyDir(CommonClass.BaseClass.AllPath strNewPath "\\" list[i].ToString(), CommonClass.BaseClass.AllPath list[i].ToString(), 0); if (toolStripProgressBar1.Value < toolStripProgressBar1.Maximum) toolStripProgressBar1.Value = 1; } baseclass.Zip(strNewPath, saveFileDialog.FileName); Directory.Delete(CommonClass.BaseClass.AllPath strNewPath, true); MessageBox.Show("压缩文件成功"); } else if (lvInfo.SelectedIndices.Count > 0) { baseclass.Zip(lvInfo.SelectedItems[0].Text, saveFileDialog.FileName); MessageBox.Show("压缩文件成功"); } 刷新ToolStripMenuItem_Click(sender, e); toolStripProgressBar1.Value = 0; } } catch { } } //解压文件 private void 解压文件ToolStripMenuItem_Click(object sender, EventArgs e) { try { folderBrowserDialog.ShowDialog(); if (lvInfo.SelectedIndices.Count > 0) { FileInfo FInfo = new FileInfo(CommonClass.BaseClass.AllPath lvInfo.SelectedItems[0].Text); if (FInfo.Exists && (FInfo.Extension.ToLower() == ".rar" || FInfo.Extension.ToLower() == ".zip")) { baseclass.UnZip(lvInfo.SelectedItems[0].Text, folderBrowserDialog.SelectedPath); MessageBox.Show("解压文件成功"); } } } catch { } } #endregion //分割文件,打开“分割文件”窗体 private void 文件分割ToolStripMenuItem_Click(object sender, EventArgs e) { frmSplit frmsplit = new frmSplit(); frmsplit.tabControl1.SelectedIndex = 0; frmsplit.ShowDialog(); } //合成文件,打开“合成文件”窗体 private void 文件合成ToolStripMenuItem_Click(object sender, EventArgs e) { frmSplit frmsplit = new frmSplit(); frmsplit.tabControl1.SelectedIndex = 1; frmsplit.ShowDialog(); } //清除系统垃圾文件 private void 垃圾文件清理ToolStripMenuItem_Click(object sender, EventArgs e) { try { System.Diagnostics.Process.Start(Application.StartupPath "\\clear.bat"); } catch { } } #region 判断是否选择了文件 /// <summary> /// 判断是否选择了文件 /// </summary> private void ISSelectFile() { if (lvInfo.SelectedIndices.Count == 0) { MessageBox.Show("请选择文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 复制ToolStripMenuItem.Enabled = 剪切ToolStripMenuItem.Enabled = 删除ToolStripMenuItem.Enabled = 重命名ToolStripMenuItem.Enabled = false; } else { strFullName = CommonClass.BaseClass.AllPath; list = baseclass.getFiles(lvInfo); } } #endregion } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论