文件夹/文件 的创建和删除
// 创建一个文件夹
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");
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280399.html