资源管理器 C#文档 内涵资源链接

来源:互联网 发布:linux查看arp表 编辑:程序博客网 时间:2024/05/16 15:47

写好的资源链接 (1积分)http://download.csdn.net/detail/give_me_energy/9537598

操作系统文档

 

 

孙飞  201300*00***

2016/5/26

 

 


 

姓名:孙飞 

学号:201300*00***  

专业:软件工程 

班级:一班  

手机:***********

题目:文件的操作


1属性窗口:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using FileExplorer;

 

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public static string oldname= null;//静态变量,由rename.cs调用,重命名时获取原名,后边还有一个静态方法,是rename调用form1的刷新方法的静态操作。

        privatestring currentPath ="";//当前路径

        privatestring[] sources =newstring[100];  //复制文件的源路径

        privatebool IsMove =false;   //是否移动

 

        publicForm1()

        {

            InitializeComponent();

        }

 

 

        //列出磁盘

        privatevoid ListDrivers()

        {

            treeView1.Nodes.Clear();

            listView1.Items.Clear();

            currentPath = "";

            toolStripComboBox1.Text =currentPath;

            DriveInfo[]drivers =DriveInfo.GetDrives();//检索计算机上的所有逻辑驱动器的驱动器名称。

 

            //列表列出每一个驱动器

            for(int i = 0; i < drivers.Length; i++)

            {

                DriveInfodriver = drivers[i];

                TreeNodenode = treeView1.Nodes.Add(driver.Name);//定义一个TreeNode节点类型对象,添加treeView1控件的根节点Nodes,也就是adddriver.name

                ListViewItemitem = listView1.Items.Add(driver.Name);//先把driver.name加到listview1中,然后把listview1的条目添加到

                item.Name = driver.Name;

                //判断驱动器类型,用不同图标显示

                switch(driver.DriveType)

                {

                    caseDriveType.CDRom:  //光驱

                        {

                            node.ImageIndex =1;

                           node.SelectedImageIndex = 1;

                            item.ImageIndex =1;

                            break;

                        }

                    default:    //默认,显示为磁盘图标

                        {

                            node.ImageIndex = 0;

                           node.SelectedImageIndex = 0;

                            item.ImageIndex =0;

                            break;

                        }

                }

 

            }

 

            foreach(TreeNode nodeintreeView1.Nodes)

            {

                NodeUpdate(node);//更新结点。

            }

        }

 

 

 

        //更新结点(列出当前目录下的子目录,在左侧栏)

        privatevoid NodeUpdate(TreeNodenode)

        {

            try

            {

                node.Nodes.Clear();

                DirectoryInfodir =newDirectoryInfo(node.FullPath);//用于创建、移动和枚举目录和子目录的实例方法      

                DirectoryInfo[]dirs = dir.GetDirectories();//查看目录的子目录。              

                foreach(DirectoryInfo dindirs)

                {

                    node.Nodes.Add(d.Name);//将其子目录录入传进来的node中,也就是treeView1.Nodes

                }

            }

            catch

            {

            }

        }

 

        //更新列表(列出当前目录下的目录和文件)

        public void ListUpdate(stringnewPath)

        {

            if(newPath == "")

                ListDrivers();

            else

            {

                try

                {

                    DirectoryInfocurrentDir =newDirectoryInfo(newPath);

                    DirectoryInfo[]dirs = currentDir.GetDirectories();//获取目录

                    FileInfo[]files = currentDir.GetFiles();  //获取文件

                    //删除ImageList中的程序图标

                    foreach(ListViewItem iteminlistView1.Items)

                    {

                        if (item.Text.EndsWith(".exe")) //是程序

                        {

                           imageList2.Images.RemoveByKey(item.Text);

                           imageList3.Images.RemoveByKey(item.Text);

                        }

                    }

                   listView1.Items.Clear();

 

                    //接下来是listview列出的项,先列出文件夹,在列出文件

                    //列出文件夹

                   foreach(DirectoryInfo dirindirs)

                    {

                        ListViewItem dirItem = listView1.Items.Add(dir.Name, 2);//文件名

                      

                        dirItem.Name =dir.FullName;//文件的路径

                        dirItem.SubItems.Add("");//subitems.add方法添加一列中的数据,在这里每一次循环,就在这一列添加了数据

                       

                        dirItem.SubItems.Add("文件夹");

                       dirItem.SubItems.Add(dir.LastWriteTimeUtc.ToString());

                    }

                   

                    //列出文件

                    foreach(FileInfo fileinfiles)

                    {

                        ListViewItem fileItem = listView1.Items.Add(file.Name);

                        if (file.Extension ==".exe"|| file.Extension =="")   //程序文件或无扩展名

                        {

                            Icon fileIcon =GetSystemIcon.GetIconByFileName(file.FullName);

                           imageList2.Images.Add(file.Name, fileIcon);

                           imageList3.Images.Add(file.Name, fileIcon);

                            fileItem.ImageKey =file.Name;

                        }

                        else    //其它文件

                        {

                            if(!imageList2.Images.ContainsKey(file.Extension)) //ImageList中不存在此类图标

                            {

                                IconfileIcon =GetSystemIcon.GetIconByFileName(file.FullName);

                               imageList2.Images.Add(file.Extension, fileIcon);

                              imageList3.Images.Add(file.Extension, fileIcon);

                            }

                            fileItem.ImageKey =file.Extension;

                        }

                        fileItem.Name =file.FullName;

                       fileItem.SubItems.Add(file.Length.ToString() +"字节");

                        fileItem.SubItems.Add(file.Extension);

                       fileItem.SubItems.Add(file.LastWriteTimeUtc.ToString());

                    }

                    currentPath = newPath;

                    toolStripComboBox1.Text =currentPath;   //更新地址栏

                

                }

                catch(Exception ex)

                {

                    MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

                }

            }

        }

 

        //打开文件夹或文件

        privatevoid Open()

        {

            if(listView1.SelectedItems.Count > 0)

            {

                stringnewPath = listView1.SelectedItems[0].Name;

                try

                {

                    //判断是目录还是文件

                    if(Directory.Exists(newPath))//是目录

                        ListUpdate(newPath);

                    else

                        Process.Start(newPath);//打开文件

                }

                catch(Exception ex)

                {

                    MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

                }

            }

        }

 

        //显示属性窗口

        privatevoid ShowAttributes()

        {

            if(listView1.SelectedItems.Count == 0)//无对象选中时,显示当前文件夹属性

            {

                FormAttributeFormAttributes1 =newFormAttribute(currentPath);

            }

            else    //有对象选中时,显示第一个选中对象的属性

            {

                FormAttributeFormAttributes1 =newFormAttribute(listView1.SelectedItems[0].Name);

            }

        }      

 

 

        //装载主界面时的操作

        privatevoid Form1_Load(objectsender,EventArgs e)

        {

            ListDrivers();

        }

 

        privatevoid treeView1_AfterSelect(object sender,TreeViewEventArgse)

        {

            e.Node.Expand();//展开下一级节点

            ListUpdate(e.Node.FullPath);

        }

 

        //listview1的操作,双击操作,此处为双击打开文件

        privatevoid listView1_ItemActivate(object sender,EventArgse)

        {

            Open();

        }

 

        //返回上一层

        privatevoid toolStripButton1_Click(object sender,EventArgse)

        {

            if(currentPath == "")

                return;

            DirectoryInfodir =newDirectoryInfo(currentPath);

            /*

              DirectoryInfo类用于典型操作,如复制、移动、重命名、创建和删除目录。

             如果打算多次重用某个对象,可考虑使用 DirectoryInfo的实例方法,而不是 Directory类的相应静态方法,因为并不总是需要安全检查。

             */

            if(dir.Parent != null)

            {

               ListUpdate(dir.Parent.FullName);//刷新路径下的文件

            }

            else

            {

                ListDrivers();//重新装载磁盘信息

            }

        }

 

 

       //上下文菜单代码,是一个contextMenuStrip,里边有新建文件夹,属性,删除,重命名,刷新操作。

        privatevoid contextMenuStrip1_Opening(object sender,CancelEventArgse)

        {

            Pointpoint = listView1.PointToClient(Cursor.Position);

            ListViewItemitem = listView1.GetItemAt(point.X, point.Y);  //获得鼠标坐标处的ListViewItem

            if(item == null)  //当前位置没有ListViewItem

            {

              //默认情况下都是true

                新建文件夹ToolStripMenuItem.Visible = true;

                属性ToolStripMenuItem.Visible = false;

                删除ToolStripMenuItem1.Visible = false;

                重命名ToolStripMenuItem.Visible = false;

                //什么场合下都可以刷新。

            }

            else    //

            {

 

                新建文件夹ToolStripMenuItem.Visible = false;

                属性ToolStripMenuItem.Visible = true;

                删除ToolStripMenuItem1.Visible = true;

                重命名ToolStripMenuItem.Visible = true;

 

            }

        }

        //设置属性的点击事件

        privatevoid 属性ToolStripMenuItem1_Click_1(object sender,EventArgse)

        {

            ShowAttributes();

        }

        //设置新建文件夹的点击事件

        privatevoid 新建文件夹ToolStripMenuItem_Click_1(object sender,EventArgse)

        {

            CreateFolder();

        }

 

 

        //新建文件夹

        privatevoid CreateFolder()

        {

            try

            {

                //Path.Combine将两个字符串组合成一个路径。返回字符串。

                stringpath = Path.Combine(currentPath, "新建文件夹");//对包含文件或目录路径信息的 String实例执行操作

                inti = 1;

                stringnewPath = path;

                while(Directory.Exists(newPath))

                {

                    newPath = path + i;

                    i++;

                }

                Directory.CreateDirectory(newPath);//新建文件

                listView1.Items.Add(newPath, "新建文件夹" + (i - 1 == 0 ?"": (i - 1).ToString()), 2);

            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

            }

        }

 

        //删除

        privatevoid Delete()

        {

            if(listView1.SelectedItems.Count == 0)

                return;

            DialogResultresult =MessageBox.Show("确定要删除吗?","确认删除",MessageBoxButtons.YesNo,MessageBoxIcon.Information);

            if(result == DialogResult.No)

                return;

            try

            {

                foreach(ListViewItem iteminlistView1.SelectedItems)

                {

                    stringpath = item.Name;//获取项目的绝对路径

                    if(File.Exists(path)) //如果存在文件

                    {

                        File.Delete(path);

                     }

                    elseif (Directory.Exists(path))

                    {   

                        //如果存在目录

                        Directory.Delete(path,true);//Directory类公开用于创建、移动和枚举通过目录和子目录的静态方法。此类无法继承

                    }

                        /*

                     Directory的方法:

                     * CreateDirectory   已重载。创建指定路径中的所有目录。

                        Delete            已重载。删除指定的目录。

                        Equals            已重载。确定两个 Object实例是否相等。(从 Object继承。)

                        Exists             确定给定路径是否引用磁盘上的现有目录。

                     */

                    //列表中移除

                   listView1.Items.Remove(item);

                }

            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

            }

        }

       // 右键单击的删除

        privatevoid 删除ToolStripMenuItem1_Click(object sender,EventArgse)

        {

            Delete();

        }

        //右键单击的重命名

        privatevoid 重命名ToolStripMenuItem_Click(object sender,EventArgse)

        {

            foreach(ListViewItem iteminlistView1.SelectedItems)

            {

                oldname = item.Name;

            }

            newrename(this).Show();

        }

        //右键单击的刷新

        privatevoid 刷新ToolStripMenuItem_Click(object sender,EventArgse)

        {

            ListUpdate(currentPath);

        }

 

 

        //存根,因为在rename中更新完文件名后需要刷新form1的内容,用到了修改构造方法,这时rename.cs调用form1的更新函数的时候就需要在form1中先进行存根。

        internalvoid toolStripButton2_Click()

        {

            ListUpdate(currentPath);

        }

 

 

        privatevoid toolStripButton3_Click(object sender,EventArgse)

        {

            stringnewPath = toolStripComboBox1.Text;

            if(newPath == "")

                return;

            ListUpdate(newPath);

        }

 

        privatevoid 关闭系统ToolStripMenuItem_Click(object sender,EventArgse)

        {

            this.Close();

        }

 

        privatevoid 关于ToolStripMenuItem_Click(object sender,EventArgse)

        {

            newabout().Show();

        }

    }

}

 

2属性窗口:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

 

 

namespace WindowsFormsApplication1

{

    public partial class FormAttribute : Form

    {

         publicFormAttribute(string path)

        {

            InitializeComponent();

             if(Directory.Exists(path))

            {               

                DirectoryInfodir =newDirectoryInfo(path);

                this.FileName= dir.Name;

                this.FileType= "文件夹";

                this.FileLocation= (dir.Parent !=null) ? dir.Parent.FullName :null;

                this.FileCreationTime= dir.CreationTime.ToString();

                this.FileLastWriteTime= dir.LastAccessTimeUtc.ToString();

                this.FileLastAccessTime= dir.LastAccessTimeUtc.ToString();

                //this.FileLength= dir.

               

            }

            elseif (File.Exists(path))

            {

                FileInfofile =newFileInfo(path);

                this.FileName= file.Name;

                this.FileType= file.Extension;

                this.FileLocation= (file.DirectoryName !=null) ?file.DirectoryName :null;

                this.FileCreationTime= file.CreationTime.ToString();

                this.FileLastWriteTime= file.LastAccessTimeUtc.ToString();

                this.FileLastAccessTime= file.LastAccessTimeUtc.ToString();

                this.FileLength= file.Length.ToString() +"字节";

            }

            this.Show();

 

        }

 

 

         publicstring FileName

        {

            get{ return textBox1.Text;}

            set{ textBox1.Text = value; }

        }

 

        public string FileType

        {

            get{ return textBox2.Text; }

            set{ textBox2.Text = value; }

        }

 

        public stringFileLocation

        {

            get{ return textBox3.Text;}

            set{ textBox3.Text = value; }

        }

 

        public string FileLength

        {

            get{ return textBox4.Text; }

            set{ textBox4.Text = value; }

        }

 

        public string FileCreationTime

        {

            get{ return textBox5.Text; }

            set{ textBox5.Text = value; }

        }

 

        public string FileLastWriteTime

        {

            get{ return textBox6.Text; }

            set{ textBox6.Text = value; }

        }

 

        public string FileLastAccessTime

        {

            get{ return textBox7.Text; }

            set{ textBox7.Text = value; }

        }

 

        privatevoid button1_Click(objectsender,EventArgs e)

        {

            this.Close();

        }

 

        privatevoid FormAttribute_Load(object sender,EventArgs e)

        {

 

        }

 

    }

    }

 

 

 

3重命名文件名窗口:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

 

namespace WindowsFormsApplication1

{

    public partial class rename : Form

    {

        privateForm1 f1;

        publicrename(Form1 f1)

        {

            InitializeComponent();

            this.f1= f1;

        }

 

        privatevoid rename_Load(objectsender,EventArgs e)

        {

            textBox1.Text = Form1.oldname;

        }

 

        privatevoid button1_Click(objectsender,EventArgs e)

        {

            // 列表中的原始文件全路径名

            stringoldStr = textBox1.Text.ToString().Trim();

            // 新文件名

           

            string[]newname = oldStr.Split('\\');

            stringnewStr = "";

            for(int i = 0; i < newname.Length - 1; i++)

            {

                newStr += newname[i];

                newStr+="\\";

            }

            newStr +=textBox2.Text.ToString().Trim();

          

            // 改名方法

            FileInfofi = new FileInfo(oldStr);

            fi.MoveTo(Path.Combine(newStr));

            //关闭窗口,并刷新主界面

            f1.toolStripButton2_Click();

            this.Close();

        }

    }

}

 

4关于作者窗口

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

    public partial class about : Form

    {

        publicabout()

        {

            InitializeComponent();

        }

 

        privatevoid about_Load(objectsender,EventArgs e)

        {

 

        }

    }

}

 

 

0 0