C# 一些知识点总结(二)

时间:2021-10-18 00:41:52

Path 类:路径类
path.GetFileName("文件路径")//获取完整文件名,包括文件名和文件拓展名
Path.GetFileNameWithoutExtension("文件路径")//获取文件名,,不包括拓展名
Path.GetExtension("文件路径")//获取文件名的拓展名

Path.GetDirectoryName("文件路径")//返回指定文件路径的字符串信息,即文件所在的文件夹的路径名称
Path.GetFullPath("文件路径")//获得文件所在的文件夹的全路径,包括文件夹名和完整文件名
Path.Combine("文件路径")//合并路径

File 类:文件类。用于操作文件,可进行一次性读写文件。
.Create("文件路径")//创建一个文件
.Delete("文件路径")//删除一个文件(永久删除,文件不存在也不发异常)
File.ReadAllBytes("打开文件路径")//打开一个路径下的文件,将文件的内容读入一个字符串,然后关闭该文件,返回一个字节数组
File.WriteAllBytes("新建文件路径",字节数组)//创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。如果目标文件已存在,则覆盖该文件。

Encoding 类:字符编码类
Encoding.Default//获取系统当前SNSI代码页的编码
Encoding.Default.GetString()//将指定字节数组中的所有字节解码为一个字符串,返回一个字符串
Encoding.Default.GetBytes()//将指定字符串中的所有字符编码为一个字节数组,返回一个字节数组

FileStream 类:文件流类。
.Read()//从流中读取字节块并将该数据写入给定缓冲区中。返回一个int值,表示读入缓冲区中的总字节数,为0表示已到达流的末尾,读取完毕。
.Write()//使用从缓冲区读取的数据将字节块写入该流。没有返回值。
.Close()//
.Dispose()//
Read()方法例子:

1 string path = @"D:\file.txt"; 2 FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read); 3 byte[] buffer = new byte[1024 * 1024 * 5];//5mb的大小 4 //返回本次实际读取的有效字节数 5 int r = fsRead.Read(buffer, 0, buffer.Length); 6 //将字节数组中每个元素按指定的编码格式解码成字符串 7 string str = Encoding.Default.GetString(buffer, 0, r); 8 //关闭流 9 fsRead.Close(); 10 //释放流所占用资源 11 fsRead.Dispose(); 12 Console.WriteLine(str);

View Code

Write()方法例子:

1 string str = @"D:\file.txt"; 2 using (FileStream fsWrite = new FileStream(str, FileMode.OpenOrCreate, FileAccess.Write)) 3 { 4 string newstr = "写入的内容!"; 5 byte[] buffer = Encoding.Default.GetBytes(newstr); 6 fsWrite.Write(buffer, 0, buffer.Length); 7 }

View Code

复制一个多媒体文件并存放到指定位置

1 /// <summary> 2 /// 复制一个多媒体文件并存放到指定位置 3 /// </summary> 4 /// <param>要复制多媒体文件的路径</param> 5 /// <param>复制后的多媒体文件存放的路径</param> 6 public static void CopyFile(string source, string target) 7 { 8 //创建一个负责读取的流 9 using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read)) 10 { 11 //创建一个负责写入的流 12 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) 13 { 14 byte[] buffer = new byte[1024 * 1024 * 5]; 15 while (true) 16 { 17 //读取的字节数 18 int r = fsRead.Read(buffer, 0, buffer.Length); 19 if (r == 0) { break; } 20 fsWrite.Write(buffer, 0, r); 21 } 22 } 23 } 24 }

View Code