文件夹/文件 的创建和删除
// 创建一个文件夹 Directory.CreateDirectory(@"E:\Test"); // 删除指定文件夹(当前文件夹必须为空) Directory.Delete(@"E:\Test"); // 删除指定文件夹(即使要删除的文件夹不为空,也会删除) Directory.Delete(@"E:\Test", true); // 获取文件夹下的文件 Directory.GetFiles(@"E:\Test"); // 获得文件夹下的文件夹 Directory.GetDirectories(@"E:\Test"); // 获得文件夹下的所有文件夹,包含子文件夹的文件夹 Directory.GetDirectories(@"E:\Test", "*.*", SearchOption.AllDirectories); // 获得文件夹下的所有文件,包含子文件下的文件 Directory.GetFiles(@"E:\Test","*.*",SearchOption.AllDirectories); // 创建文件 File.Create(@"E:\Test\Text.txt"); // 删除文件 File.Delete(@"E:\Test\Text.txt"); // 获取文件夹信息,当前文件夹的信息都保存在Info中 DirectoryInfo info = new DirectoryInfo(@"E:\Test"); // 获得文件信息,当前文件的信息都保存在file中 FileInfo file = new FileInfo(@"E:\Test\Text.txt");
字节数组和字符串之间的转换
string str = "Hello World"; // 将字符串转换成字节数组 byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str); // 将字节数组转换成字符串 string str2 = System.Text.Encoding.UTF8.GetString(byteList);
文件的读写
方法一:注意需要手动将字节流断开
// 创建一个文件夹 Directory.CreateDirectory(@"E:\Test"); // 创建一个文本,并返回一个字节流方便将文本写入 FileStream fs = File.Create(@"E:\Test\Test.txt"); // 要写入的字符串 string str = "Hello World"; // 将字符串转换成计算机能够识别的字节数组 byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str); // 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束); fs.Write(byteList,0,byteList.Length); // 将字节流断开 fs.Close(); // 获得指定路径的文件流 FileStream fw = new FileStream(@"E:\Test\Test.txt",FileMode.OpenOrCreate); // 创建一个数据缓冲区,用于存放从文件中获得的字节数据(必须要比读取的文件大,但不能太大浪费性能,酌情处理); byte[] byteList2 = new byte[1024]; // 通过文件流进行读取 fw.Read(byteList2,0,byteList2.Length); // 将字节数组转换成字符串 string str2 = System.Text.Encoding.UTF8.GetString(byteList2);
方法二:using执行完毕字节流将会自动断开,无需手动操作
// 创建一个文件夹 Directory.CreateDirectory(@"E:\Test"); // 创建一个文本,并返回一个字节流方便将文本写入 using (FileStream fs = File.Create(@"E:\Test\Test.txt")) { // 要写入的字符串 string str = "Hello World"; // 将字符串转换成计算机能够识别的字节数组 byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str); // 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束); fs.Write(byteList, 0, byteList.Length); } // 创建一个文件流用于已有文件中内容的追加 using (FileStream fs = new FileStream(@"E:\Test\Test.txt", FileMode.Append)) { // 要写入的字符串 string str = "Hello World"; // 将字符串转换成计算机能够识别的字节数组 byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str); // 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束); fs.Write(byteList, 0, byteList.Length); } // 获得指定路径的文件流 using (FileStream fw = new FileStream(@"E:\Test\Test.txt", FileMode.OpenOrCreate)) { // 创建一个数据缓冲区,用于存放从文件中获得的字节数据(必须要比读取的文件大,但不能太大浪费性能,酌情处理); byte[] byteList2 = new byte[1024]; // 通过文件流进行读取 fw.Read(byteList2, 0, byteList2.Length); // 将字节数组转换成字符串 string str2 = System.Text.Encoding.UTF8.GetString(byteList2); }
方法三:不通过文件流直接向文件中写文本(直接对其原文本进行覆盖)
// 直接向文件中写文本 File.WriteAllText(@"E:\Test\Test.txt","AAAAAAAA"); // 将文本转换成字节数组并直接写入文件 string str3 = "BBBBB"; byte[] byteList3 = System.Text.Encoding.UTF8.GetBytes(str3); File.WriteAllBytes(@"E:\Test\Test.txt",byteList3); // 读取文件中的文本 File.ReadAllText(@"E:\Test\Test.txt"); // 通过字节流读取文件中的文本(有时文本中存储的不是字符串格式) byte[]byteList4 = File.ReadAllBytes(@"E:\Test\Test.txt");