文件与目录操作
主要包括对文本文件读取与写入方法,文件的删除、移动和复制、文件目录操作。
首先展示一下最终的界面如下所示:
首先建立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 类中的方法。