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