免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

C#實現(xiàn)文件管理器

 小魚兒363 2016-05-24

下面詳細介紹這個小程序能實現(xiàn)的功能:
1.包括TXET文本的新建、復制、粘貼、刪除和撤銷等文件操作。
2.對文本字體的操作:粗體、下劃線和斜體。
3.包括文本夾的新建、復制、粘貼、刪除等文件夾操作。
4.五種查看方式:列表、小圖標、大圖標、標題和詳細。

軟件界面

文件管理器主界面


進入驅動器D盤后的界面


新建文件界面


新建文件夾界面


文本文檔界面

System.IO
System.IO命名空間很重要,它包含了許多的類,以便讓托管應用程序可以通過同步或異步方式提供文本I/O以及其他形式的輸入和輸出方式,從而操作文件系統(tǒng)或流的輸入和輸出操作。System.IO的命名空間相當龐大,在本例中,主要用到以下幾個方面:

1.File類:它提供了打開,創(chuàng)建,復制,移動,重命名文件以及讀寫文件屬性的靜態(tài)方法.
2.Directory類:它為目錄提供編程接口,使應用程序可以通過簡單的方法來創(chuàng)建,刪除目錄.
3.FileStream類:它允許將文件作為流訪問,實現(xiàn)標準的輸出,輸入操作,可隨機的訪問文件內容.
4.StreamReader與StreamWriter類:它們支持對文本的讀寫操作,讓應用程序可以訪問文件或信息流.

下面,簡要說一下在例子中用到的幾個控件及它們的屬性。

ListView
通過ListView控件,可以在標準視圖對話框中進行各種操作(查看,打開文件等)。本例中,主要用到以下功能:
1.View:  a LargeIcon:所有選項都在其旁邊顯示一個大圖標和一個標簽。
             b SmallIcon:所有選項都在其旁邊顯示一個小圖標和一個標簽。
             c List:只顯示一列,該列可以包含一個圖標和一個標簽。
             d Details:可以顯示任意數(shù)量的列,只有第一列可以包含圖像。
2.SelectedItems:這個屬性包含了選中選項的集合。
3.MultiSelect:這個屬性設置為true,用戶可以選擇多個選項。
4.LargeImageList:這個屬性包含ImageList,其中ImageList包含ListView中要使用的圖像。當View屬性為LargeIcon時,可以使用圖像。
5.SmallImageList:這個屬性包含ImageList,其中ImageList包含ListView中要使用的圖像。當View屬性為SmallIcon時,可以使用圖像。

ImageList
ImageList 控件包含 ListImage 對象的集合,該集合中的每個對象都可以通過其索引或關鍵字被引用。ImageList 控件不能獨立使用,只是作為一個便于向其它控件提供圖象的資料中心。
語法:ImageList
ImageList 控件的作用象圖像的儲藏室,同時,它需要第二個控件顯示所儲存的圖像。第二個控件可以是任何能顯示圖像 Picture 對象的控件,也可以是特別設計的、用于綁定 ImageList 控件的 Windows 通用控件之一。這些控件包括ListView、ToolBar、TabStrip、Header、ImageCombo、和 TreeView 控件。為了與這些控件一同使用 ImageList,必須通過一個適當?shù)膶傩詫⑻囟ǖ?ImageList控件綁定到第二個控件。對于 ListView 控件,必須設置其 Icons 和 SmallIcons 屬性為 ImageList 控件。對于 TreeView、TabStrip、ImageCombo、和 Toolbar 控件,必須設置 ImageList 屬性為 ImageList 控件。
在設計時,可以用“ImageList 控件屬性”對話框的“圖像”選項卡來添加圖象。在運行時,可以用 Add 方法給 ListImages 集合添加圖象。

ContextMenuStrip
ContextMenuStrip 控件提供了與某個控件關聯(lián)的快捷菜單。也就是說通過這個控件可以方便的實現(xiàn)在別的控件上彈出右鍵快捷菜單。
例子:
1、先添加一個ContextMenuStrip 控件到Form上
2、設置目標控件(如窗體、文本框等)的ContextMenuStrip屬性,指向你剛才添加的ContextMenuStrip 控件。這樣就實現(xiàn)了兩者的關聯(lián)。
3、動態(tài)將一些菜單項添加到 ContextMenuStrip 控件中,如:
//上下文菜單項
ContextMenuStrip1.Items.Add(msEditNew);
ContextMenuStrip1.Items.Add(msEditBar1);
ContextMenuStrip1.Items.Add(msEditCut);
ContextMenuStrip1.Items.Add(msEditPaste);
ContextMenuStrip1.Items.Add(msEditDelete);
ContextMenuStrip1.Items.Add(msEditBar2);
這樣就OK了,你在目標控件上按右鍵時將彈出快捷菜單。

通過上面的介紹,大家應該能明白本例中要實現(xiàn)的效果,需要用到的控件及重要屬性等,下面,就可以切入正題,如何通過編程,實現(xiàn)我們上面提到的功能。 呵呵,再提一點,也是比較重要的:C#是一種面向對象的編程語言,因此,在編程之前我們就要有“面向對象編程”的思想,在編程的過程中貫徹這樣的思想,
同時,這也是符合目前公司里的編程思想。還有一點,盡量做到代碼的規(guī)范,可以為以后再次開發(fā)或別人閱讀我們程序起到簡便明了的作用。

主要有兩個類:Folder.cs和Txt.cs,分別是對文件和文本的相關操作。類里的方法,我都做了詳盡的注釋,如果還有什么不明白,可以聯(lián)系我。

Folder.cs

CODE:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace FileManager.Class
{
    public class Folder
    {
        /// <summary>
        /// 新建文件夾
        /// </summary>
        /// <param name="filename">文件夾名</param>
        /// <param name="path">文件夾路徑</param>
        public static void NewFolder(string foldername, string path)
        {
            foldername.Trim();
            //如果輸入信息為空,提示
            if (foldername == "")
            {
                MessageBox.Show("目錄名不能為空");
                return;
            }
            else
            {
                string FullName = path + "http://" + foldername;
                //如果該文件以及存在
                if (Directory.Exists(FullName))
                {
                    MessageBox.Show("該目錄已經存在,請重命名");
                    return;
                }
                else
                {
                    //新建文件夾
                    Directory.CreateDirectory(FullName);
                }
            }
        }

        /// <summary>
        /// 新建文件夾(Enter鍵觸發(fā))
        /// </summary>
        /// <param name="filename">文件夾名</param>
        /// <param name="path">文件夾路徑</param>
        public static void Enter(string foldername, string path)
        {
            foldername.Trim();
            if (foldername == "")
            {
                MessageBox.Show("目錄名不能為空!");
                return;
            }
            else if (Directory.Exists(path + "http://" + foldername))
            {
                MessageBox.Show("該目錄以及存在,請重新命名");
                return;
            }
            else
            {
                Directory.CreateDirectory(path + "http://" + foldername);
            }

        }

        /// <summary>
        /// //獲取文件夾名,

截取“/”
        /// </summary>
        /// <param name="DirectoryPath">文件夾完整路徑</param>
        /// <returns></returns>
        internal static int DirectoryName(string DirectoryPath)
        {
            int j = 0;
            char[] c = DirectoryPath.ToCharArray();
            for (int i = c.Length - 1; i >= 0; i--)//從后面截取
            {
                j = i;
                if (c[i].ToString() == "http://")
                {
                    break;//遇"/"調處,并返回"/"的位置
                }
            }
            return j + 1;
        }
        /// <summary>
        /// 在指定目錄下新建一個文件夾
        /// </summary>
        /// <param name="path"></param>
        /// <param name="name"></param>
        public static void CreateDir(string path, string name)
        {
            Directory.CreateDirectory(path + "http://" + name);
        }

        /// <summary>
        /// 復制文件
        /// </summary>
        /// <param name="oldDir">原文件所在文件夾路徑</param>
        /// <param name="Name">文件名</param>
        /// <param name="newDir">新文件夾路徑</param>
        public static void CopyFile(string oldDir, string Name, string newDir)
        {
            File.Copy(oldDir + "http://" + Name, newDir + "http://" + Name);
        }

        /// <summary>
        /// 復制文件
        /// </summary>
        /// <param name="oldDir">原文件所在文件夾路徑</param>
        /// <param name="newDir">新文件夾路徑</param>
        public static void CopyFile(string oldDir, string newDir)
        {
            string name = oldDir.Substring(DirectoryName(oldDir));
            File.Copy(oldDir, newDir + "http://" + name);
        }

        /// <summary>
        /// 刪除指定文件夾
        /// </summary>
        /// <param name="strDir">文件夾完整路徑</param>
        /// <param name="recursive">是否刪除文件夾子項</param>
        public static void DeleteFolder(string strDir, bool recursive)
        {
            Directory.Delete(strDir, recursive);
        }

        /// <summary>
        /// 返回指定路徑的DirectoryInfo
        /// </summary>
        /// <returns></returns>
        public static DirectoryInfo GetDir(string path)
        {
            return new DirectoryInfo(path);
        }
    }
}
Txt.cs

CODE:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing;

namespace FileManager.Class
{
    public class Txt
    {
        public Txt()
        {

        }
        /// <summary>
        /// 新建文件
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <param name="path">文件路徑</param>
        public static void NewFile(string filename,string path)
        {
            filename.Trim();
            if (filename == "")
            {
                MessageBox.Show("文件名不能為空~!");
            }
            else
            {
                if (File.Exists(path + "http://" + filename+".txt"))
                {
                    MessageBox.Show("該文件名已經存在,請重命名");
                }
                else
                {
                    string FullName = path + "http://" + filename + ".txt";   //獲得文件完整信息
                    StreamWriter Sw = File.CreateText(FullName);
                }
            }
        }
        /// <summary>
        /// 新建文件(Enter鍵觸發(fā))
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <param name="path">文件路徑</param>
        public static void Enter(string filename, string path)
        {
            filename.Trim();
            if (filename == "")
            {
                MessageBox.Show("文件名不能為空~!");
            }
            else
            {
                if (File.Exists(path + "http://" + filename+".txt"))
                {
                    MessageBox.Show("該文件名已經存在,請重命名");
                }
                else
                {
                    string FullName = path + "http://" + filename + ".txt";   //獲得文件完整信息
                    StreamWriter Sw = File.CreateText(FullName);
                }
            }
        }
        /// <summary>
        /// 讀取顯示
        /// </summary>
        /// <param name="filename">文本文件名</param>
        /// <param name="contents">內容</param>
        public static string Display(string filename)
        {//讀取顯示
            try
            {
                string contents;
                FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);   //讀出所打開的文本文件
                StreamReader reader = new StreamReader(fs);     //實例化一個streamreader
                contents = reader.ReadToEnd();           //將數(shù)據顯示
                fs.Close();
                return contents;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return "";
            }
        }
        /// <summary>
        /// 打開
        /// </summary>
        /// <param name="ofd">打開對話框</param>
        /// <param name="fullname">文本文件名</param>
        /// <param name="contents">內容</param>
        public static void Open(OpenFileDialog ofd,string fullname,string contents)
        {//打開文本
            try
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    string fileName = ofd.FileName;     //文件名
                    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                    StreamReader reader = new StreamReader(fs);
                    fullname = fileName;
                    contents = reader.ReadToEnd();
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="fullname">文本文件名</param>
        /// <param name="contents">內容</param>
        public static void Save(string fullname,string contents)
        {//保存
            try
            {
                StreamWriter writer = new StreamWriter(fullname);
                writer.Write(contents);      //用write()方法把txtContent的數(shù)據寫入文件
                writer.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// 另存為
        /// </summary>
        /// <param name="sfd">保存對話框</param>
        /// <param name="contents">內容</param>
        public static void SaveAs(SaveFileDialog sfd,string contents)
        {
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                string fileName = sfd.FileName;
                try
                {
                    Stream stream = File.OpenWrite(fileName);
                    using (StreamWriter writer = new StreamWriter(stream))
                    {
                        writer.Write(contents);
                        writer.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        /// <summary>
        /// 粗體
        /// </summary>
        /// <param name="rtb"></param>
        public static void Bold(RichTextBox rtb)
        {
            Font newFont = new Font(rtb.SelectionFont,
                        (rtb.SelectionFont.Bold ?
                         rtb.SelectionFont.Style & ~FontStyle.Bold :
                         rtb.SelectionFont.Style | FontStyle.Bold));
            rtb.SelectionFont = newFont;
        }
        /// <summary>
        /// 斜體
        /// </summary>
        /// <param name="rtb"></param>
        public static void Italic(RichTextBox rtb)
        {
            Font newFont = new Font(rtb.SelectionFont,
           (rtb.SelectionFont.Italic ?
            rtb.SelectionFont.Style & ~FontStyle.Italic :
            rtb.SelectionFont.Style | FontStyle.Italic));
            rtb.SelectionFont = newFont;
        }
        /// <summary>
        /// 下劃線
        /// </summary>
        /// <param name="rtb"></param>
        public static void Underline(RichTextBox rtb)
        {
            Font newFont = new Font(rtb.SelectionFont,
           (rtb.SelectionFont.Underline ?
            rtb.SelectionFont.Style & ~FontStyle.Underline :
            rtb.SelectionFont.Style | FontStyle.Underline));
            rtb.SelectionFont = newFont;
        }
        /// <summary>
        /// 復制
        /// </summary>
        /// <param name="rtb"></param>
        public static void Copy(RichTextBox rtb)
        {
            if (rtb.SelectedText.Equals(""))
                return;
            Clipboard.SetDataObject(rtb.SelectedText, true);
        }
        /// <summary>
        /// 剪切
        /// </summary>
        /// <param name="rtb"></param>
        public static void Cut(RichTextBox rtb)
        {
            if (rtb.SelectedText.Length > 0)
            {
                try
                {
                    rtb.Cut();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        /// <summary>
        /// 粘貼
        /// </summary>
        /// <param name="rtb"></param>
        public static void Paste(RichTextBox rtb)
        {
            rtb.Paste();
        }
        /// <summary>
        /// 退出
        /// </summary>
        /// <param name="fullname">文本文件全名</param>
        /// <param name="contents">內容</param>
        public static void Exit(string fullname,string contents)
        {
            if (MessageBox.Show("      是否保存文件",

"提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                try
                {
                    StreamWriter writer = new StreamWriter(fullname);
                    writer.Write(contents);      //用write()方法把txtContent的數(shù)據寫入文件
                    writer.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        /// <summary>
        /// 在指定目錄新建一個文本文件
        /// </summary>
        /// <param name="path"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static StreamWriter CreateText(string path, string name)
        {
            return File.CreateText(path + "http://" + name);
        }

        /// <summary>
        /// 刪除指定文件
        /// </summary>
        /// <param name="strFile">文件完整路徑</param>
        public static void DeleteFile(string strFile)
        {
            File.Delete(strFile);
        }
    }
}

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約