Path类
GetFileName:获得文件名
//快速获得一个路径中的文件名 |
GetFileNameWithoutExtension:获得文件名但不包含扩展名
//获得文件名但不包括扩展名 |
GetExtension:获得文件的扩展名
//直接获得扩展名 |
GetDirectoryName:获得文件所在文件夹的名称
//获得文件所在文件夹的名称 |
GetFullPath:获得文件所在的全路径
//获得文件所在的全路径 |
Combine:连接两个字符串作为路径
//连接两个字符串作为路径 |
File类的基本操作
Create:创建一个文件
//创建一个文件 |
注意:如果使用Create创建同一个文件,不会重复创建,只会对文件进行修改。
Delete:删除一个文件
//删除一个文件 |
Copy:复制一个文件
//复制一个文件 |
读文件的三个方法
ReadAllBytes:以字节的形式读文件
byte[] buffer = File.ReadAllBytes(@"C:\aaa\b.txt");
//将字节数组中的每一个元素都要按照我们指定的编码格式解码成字符串
string s = Encoding.Default.GetString(buffer);
Console.WriteLine(s);ReadAllLines:以行的形式读文件
string content[] = File.ReadAllLines(@"C:\aaa\bbb\new.txt", Encoding.Default);
foreach (string item in content)
{
Console.WriteLine(item);
}ReadAllText:以文本的形式读文件
string str = File.ReadAllText(@"C:\aaa\bbb\new.txt", Encoding.Default);
Console.WriteLine(str);
注意:
- ReadAllText和ReadAllLines只能读取文本文件,而ReadAllBytes读取所有文件,包括图片,音频,多媒体文件。
- ReadAllLines返回字符串数组,ReadAllText返回字符串。
写文件的方法
WriteAllBytes:以字节形式写文件
string str = "今天天气好晴朗处处好风光";
//需要将字符串转换成字节数组
byte[] buffer = Encoding.Default.GetBytes(str);
//如果文件不存在,则创建,否则覆盖该文件
File.WriteAllBytes(@"C:\aaa\bbb\new.txt", buffer);WriteAllLines:以行的形式写文件
File.WriteAllLines(@"C:\aaa\bbb\new.txt", new string[] str { "aoe", "iuy" });
WriteAllText:以字符串的形式写文件
File.WriteAllText(@"C:\aaa\bbb\new.txt", "张三李四王五");
AppendAllText:不覆盖原文件,在后面追加文件
File.AppendAllText(@"C:\aaa\bbb\new.txt", "看我有没有把你覆盖");
编码
定义
将字符串以什么样的形式保存为二进制,这个就是编码。
编码发展
- ASC:美国人最早的128位编码,表示a-z,0-9等。
- ASCII:256位编码,对ASC的扩充。
- GB2312:简体字。
- Big5:繁体字。
- unicode:基本囊括各个国家的语言,但是解析起来慢。
- UTF-8:用于web的编码。
注意:
- UTF-8和UTF-7,UTF-32共同组成unicode。
- GBK和GB2312区别,GB2312只有简体中文,GBK既有简体,又有繁体。
产生乱码的原因
就是保存文件所采用的编码,跟打开这个文件所采用的编码格式不一样。
绝对路径和相对路径
绝对路径:通过给定的这个路径直接能在计算机中找到这个文件。
相对路径:文件相对于应用程序的路径。在开发中应该尽量去使用相对路径。
FileStream类
File类和FileStream类的区别
File:读取或者操作整个文件,只能操作小文件。
FileStream:把文件分割成很多份去操作(字节),可以操作大文件。
使用FileStream来读取数据
//参数一:要操作的文件路径。 |
使用FileStream来写入数据
注意:将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源。
using(FileStream fsWrite = new FileStream(@"c:/aaa/b.txt", FileMode.OpenOrCreate, FileAccess.Write)) |
实现多媒体文件的复制
思路:先将要复制的多媒体文件读取出来,然后再写入另外一个指定的文件中。
Main函数
static void Main(string[] args) |
CopyFile方法
public static void CopyFile(string source, string target) |
StreamReader和StreamWriter
StreamReader读取文本文件
//使用StreamReader来读取一个文本文件 |
StreamWriter写入文本文件
//使用StreamWriter写入文本文件,第二个参数表示覆盖或者追加 |