文件與目錄操作
主要包括對文本文件讀取與寫入方法,文件的刪除、移動和複製、文件目錄操作。
首先展示一下最終的界面如下所示:
首先建立Windows窗體應用程序,在Form1.cs【設計】中進行界面設計如上圖展示 所示:
接下來就是關於如何進行文本文件讀寫、文件操作、文件目錄操作三個方面展開程序講解;
- 一、將窗口TextBox中的文字保留到指定文件中的方法如下:
///對文件的操作是基於數據流進行的,所以需要引入此命名空間
using System.IO;
///將文本 寫入文本文件
private void button1_Click(object sender, EventArgs e)
{
//[1]創建文件流(文件打開方式,如果不存在就創建)
FileStream fs = new FileStream("D:\\Fromfile\\myfile.txt", FileMode.Create);
//[2]創建寫入器
StreamWriter sw = new StreamWriter(fs);
//[3]以流的方式寫入數據
sw.Write(this.textContent.Text.Trim());
//[4]關閉寫入器
sw.Close();
//[5]關閉文件流
fs.Close();
}
通過以上5個步驟實現寫入文本文件。
- 二、從指定文本文件中讀取文本到textBox控件方法類似:
///從文本文件中讀取 文本
private void button2_Click(object sender, EventArgs e)
{
//[1]創建文件流(文件模式,打開一個文件 )
FileStream fs = new FileStream("D:\\Fromfile\\myfile.txt", FileMode.Open);
//[2]創建讀取器
StreamReader sr = new StreamReader(fs);
//[3]以流的方式讀取數據 (讀取全部數據)
this.textContent.Text = sr.ReadToEnd();
//[4]關閉讀取器
sr.Close();
//[5]關閉文件流
fs.Close();
}
- 三、模擬寫入系統日誌
private void button3_Click(object sender, EventArgs e)
{
//[1]創建文件流(文件模式:追加)
FileStream fs = new FileStream("D:\\Fromfile\\myfile.txt", FileMode.Append);
//[2]創建寫入器
StreamWriter sw = new StreamWriter(fs);
//[3]以流的方式“逐行”寫入數據
sw.WriteLine(DateTime.Now.ToString()+ "文件操作正常!" );
//[4]關閉寫入器
sw.Close();
//[5]關閉文件流
fs.Close();
}
- 四、刪除文件、 複製文件、移動文件
///刪除文件
private void button4_Click(object sender, EventArgs e)
{
File.Delete(this.txtFrom.Text.Trim());
}
///複製文件
private void button5_Click(object sender, EventArgs e)
{
if (File.Exists(this.txtTo.Text.Trim())) //判斷文件是否存在(如果文件存在,直接複製會出現錯誤)
{
File.Delete(this.txtTo.Text.Trim()); //刪除文件
}
File.Copy(this.txtFrom.Text.Trim(), this.txtTo.Text.Trim()); //複製文件
}
///移動文件
private void button6_Click(object sender, EventArgs e)
{
}
C#移動文件夾中的所有文件夾與文件到另一個文件夾參考:https://blog.csdn.net/szsbell/article/details/51800424
- 五、顯示指定目錄下所有文件、顯示指定目錄下所有子目錄、在指定目錄下創建一個目錄、刪除指定目錄下的所有目錄和文件
///顯示指定目錄下所有文件 private void button7_Click(object sender, EventArgs e) { string[] files = Directory.GetFiles("D:\\Fromfile"); this.textContent.Clear(); foreach (string item in files) { this.textContent.Text += item + "\r\n"; } } ///顯示指定目錄下所有子目錄 private void button8_Click(object sender, EventArgs e) { string[] dirs = Directory.GetDirectories("D:\\Fromfile"); this.textContent.Clear(); foreach (string item in dirs) { this.textContent.Text += item + "\r\n"; } } ///在指定目錄下創建一個目錄 private void button9_Click(object sender, EventArgs e) { Directory.CreateDirectory("D:\\Fromfile\\newfiles"); } ///刪除指定目錄下的所有目錄和文件 private void button10_Click(object sender, EventArgs e) { ///Directory.Delete("D:\\Fromfile");//要求目錄必須爲空 ///使用DirectoryInfo對象,可以刪除不爲空的目錄 DirectoryInfo dir = new DirectoryInfo("D:\\Fromfile"); dir.Delete(true); }
關於目錄的操作可以仔細查閱Directory類與DirectoryInfo 類中的方法。