閱讀398 返回首頁    go 技術社區[雲棲]


C# 文件操作之創建文件夾

本文章主要是講述C#中文件操作的基礎知識,如何創建文件夾、創建文件、介紹Directory類\DirectoryInfo類和使用FolderBrowserDialog組件(文件夾對話框)。文章屬於基礎知識,參考了書籍劉麗霞《C#範例開發大全》,希望對大家有用!

一.界麵設計

創建的C# Windows窗體應用程序,界麵設計如下添加Lable控件、TextBox控件(其中textBox1可設置屬性為隻讀)、Button控件和FolderBrowserDialog組件(文件夾對話框),點擊"瀏覽按鈕"時會彈出"瀏覽文件夾"的對話框供選擇要創建文件夾的路徑。同時輸入創建個數點擊"創建文件夾"按鈕可以實現批量創建文件夾功能。

 

二.源代碼

1.添加命名空間

在文件操作中,Directory類和DirectoryInfo類的命名空間都是system.IO:

using System.IO;

2.源代碼

點擊"瀏覽"按鈕和“創建文件夾”按鈕分別實現相應的Click事件,同時添加一個變量string path\filename記錄創建文件夾的路徑和文件夾名,代碼如下:

//定義變量
string path = "";                                        //文件路徑
string filename = "";                                    //文件夾名
//點擊"瀏覽"按鈕
private void button3_Click(object sender, EventArgs e)
{
    //使用文件對話框查找文件夾創建的路徑
    if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)   
    {
        path = this.folderBrowserDialog1.SelectedPath;  //獲取用戶選中路徑
        textBox1.Text = path;                           //顯示路徑
    }
}
//點擊"創建文件夾"按鈕
private void button1_Click(object sender, EventArgs e)
{
    if (textBox2.Text == "")  //創建個數不為0
    {
        MessageBox.Show("請輸入創建文件夾的個數!");
        return;
    }
    //Convert將一個基本數據類型轉換為另一個數據類型
    int num = Convert.ToInt32(textBox2.Text);             //創建文件夾個數
    //循環創建文件夾
    for (int i = 0; i < num; i++)
    {
        filename = path + "\\新建文件夾" + i.ToString();    //組合路徑
        Directory.CreateDirectory(filename);              //創建文件夾
    }
    MessageBox.Show("文件夾創建成功!");
}

3.運行結果

選擇路徑後,點擊"創建"按鈕就會在相應目錄下創建文件夾,如果想創建txt文件可以用File.Create(string path)創建;建議在程序中盡量使用try..catch進行異常信息處理。上麵核心知識有兩點:(後麵將詳細介紹)
                      (1).使用FolderBrowserDialog組件獲取創建文件夾路徑;
                      (2).使用Directory類提供的靜態方法CreateDirectory()實現創建文件夾.

三.FolderBrowserDialog組件

在winform程序中我們經常需要使用FolderBrowserDialog組件打開相應路徑,該控件的運行結果如下圖所示:

它的實現代碼基本如下:

//FolderBrowserDialog:文件對話框獲取文件夾創建的路徑
//方法一:調用folderBrowserDialog1
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)   //DialogResult獲取對話框結果"確定"
{
    path = this.folderBrowserDialog1.SelectedPath;         //獲取用戶選中路徑
    textBox1.Text = path;                                  //顯示路徑
}
//方法二:動態實例FolderBrowserDialog控件
FolderBrowserDialog folder = new FolderBrowserDialog();
if (folder.ShowDialog() == DialogResult.OK)
{
    path = folder.SelectedPath;                            //獲取用戶選中路徑
    textBox1.Text = path;                                  //顯示路徑
}

它提供一種方法提示用戶瀏覽、創建並最終選擇一個文件夾,但不可以選擇文件;通過瀏覽樹型結構呈現。其中我們使用的SelectedPath屬性是獲取或設置用戶選定的路徑(詳解MSDN)。同時與它類似的控件還有保存文件位置對話框saveFileDialog控件和打開對話框OpenFileDialog控件:

//實例
SaveFileDialog folder = new SaveFileDialog();
folder.Filter = "網頁文件(*.htm)|*.htm|ASP.NET文件(*.aspx)|*.aspx";    
//打開保存對話框 點擊"確定"按鈕執行  
if (folder.ShowDialog() == DialogResult.OK)
{
    //讀取數據、寫入數據操作 如:
    stream.ReadToEnd();
    stream.Write();
    stream.Close();
}

四.Directory類和DirectoryInfo類

Directory類用於創建、移動和枚舉目錄和子目錄的實例方法。無法繼承此類,其命名空間為System.IO;上麵代碼中主要采用Directory提供的靜態方法CreateDirectory()創建文件夾;而Directoryinfo類是實例類,這兩個類包含的大部分方法都是相同的,典型操作有創建、複製、移動、重命名和刪除。如果打算多次重用某個對象應考慮使用DirectoryInfo實例方法,而不是Directory靜態方法,因為並不總需要安全檢查。下麵介紹一些簡單的方法:

//Directory
Directory.Exists("e:\\file");                //檢查文件是否存在
Directory.CreateDirectory("e:\\file");       //創建文件夾
Directory.Delete("e:\\file");                //刪除文件夾
Directory.GetCreationTime("e:\\nba");        //獲取目錄的創建時間和日期(dateTime型->ToString)
Directory.GetCurrentDirectory();             //獲取應用程序當前目錄(返回值string)
Directory.GetFiles("e:\\");                  //獲取目錄中文件名稱
string[] files = Directory.GetFiles("e:\\");
Directory.GetDirectoryRoot("e:\\file");       //獲取路徑根目錄
Directory.Move("E:\\","F:\\");                //移動文件夾(E移動到F)
Directory.SetCreationTime(string,DateTime);   //設置文件目錄創建時間日期
//DirectoryInfo
DirectoryInfo dir = new DirectoryInfo(path);  //實例對象
dir.GetFileSystemInfos();                     //獲取目錄中所有文件盒子目錄
dir.GetFiles();                               //返回當前目錄文件列表
dir.MoveTo(string);                           //移動文件或重命名

參考 https://msdn.microsoft.com/zh-cn/library/System.IO.DirectoryInfo(v=vs.80).aspx

五.總結

文章主要介紹基於Directory類和DirectoryInfo類的文件夾、文件操作的基礎知識,其中通過例子介紹了FolderBrowserDialog組件等知識,文章最後感謝MSDN中的一些知識和《C#範例開發大全》書籍及作者。同時寫該文章主要原是對自己學習該知識的一個總結與記錄,可能內容很簡單也不是很實用,但還是希望文章對大家有所幫助。如果有錯誤或不足之處,見諒!

(By:Eastmount 2013-9-21 下午4點 https://blog.csdn.net/eastmount/

最後更新:2017-04-03 15:21:46

  上一篇:go mac OS下在控製台中發送外部郵件
  下一篇:go Java麵向對象高級--繼承的應用----整形數組類、排序類、反轉類