1 File类的使用(文件管理)
1.1文件的读取
(1)利用ReadAllLines方法读取文件,但是汉字会出现乱码的现象。
static void Main(string[] args)
{
string[] str= File.ReadAllLines(@"F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料\繁体字.txt");
for(int i=0;i<str.Length;i++)
{
Console.WriteLine(str[i]);
}
Console.ReadKey();
}
(2)编码
将字符串以什么样的形式保存为二进制,这个就是编码,UTF-8、ASCII、Unicode等
(3)产生乱码的原因:
保存这个文件的时候所采取的编码格式跟我打开的时候所采取的编码格式不一致。
消除乱码的方法:
Encoding.Default是读取系统默认的编码
static void Main(string[] args)
{
string[] str= File.ReadAllLines(@"F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料\简体字.txt",Encoding.Default);
for(int i=0;i<str.Length;i++)
{
Console.WriteLine(str[i]);
}
Console.ReadKey();
}
(4)ReadAllText和ReadAllLines(读取文本文件)
都可以读取文件但是,ReadAllText返回一个字符串,
ReadAllLines返回一个字符串数组,而这两个方法只能去读取文本文件
文本文件:拖到txt里还能看得懂的是文本文件,只有txt是文本文件。
区别:
张三 | 5000
李四 | 10000
王五 | 20000
如果问输出这个文本就是利用ReadAllText
如果问将这个文本的每一行数据增加5000,就利用ReadAllLines
(5)ReadAllBytes方法(不仅能读取字节文件还能读取文本文件,即能读取一切类型的文件)
换算:1024bytes=1kb,1024kb=1M,1024M=1G,1024G=1T
static void Main(string[] args)
{
byte[] b= File.ReadAllBytes(@"F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料\简体字.txt");
//将字节数组解码为我们认识的字符串
string str=Encoding.Default.GetString(b);
Console.WriteLine(str);
Console.ReadKey();
}
1.2 文件的写入
(1)方法1:WriteAllLines
File.WriteAllLines(@“C:\Users\丁浩然\Desktop\练习.txt”,new string[] { “李四”,“王五”});
会覆盖原文件
(2)方法2:WriteAllText
File.WriteAllText(@“C:\Users\丁浩然\Desktop\练习.txt”,“今天”);
同样会覆盖原文件
(3)方法3:WriteAllBytes
string str = “今天天气真好”;
将字符串转换成字节数组
byte[] b= Encoding.Default.GetBytes(str);
File.WriteAllBytes(@“C:\Users\丁浩然\Desktop\练习.txt”,b);
同样会覆盖原文件
(4)追加的往文件中写入,即不覆盖原文件
File.AppendAllText(@“C:\Users\丁浩然\Desktop\练习.txt”,“你好”,Encoding.Default);
(5)复制并粘贴文件
将视频文件(F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\video\13、总结.wmv)复制粘贴到(F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料)中
由此得知File类的弊端是:只能去操控小文件,操控大文件时间比较长
对一个文件复制粘贴的过程就是先读入再写的过程
2 Directory类的使用(文件夹管理)
2.1创建文件夹
CreateDirectory
Directory.CreateDirectory(@“C:\a”);在c盘中创建一个文件夹
2.2 删除文件夹
Delete
Directory.Delete(@“C:\a”,true);无论文件夹中有没有文件都会删除
2.3 剪切文件夹
Move
Directory.Move(@“C:\a\b”,“C:\d”);将b文件夹中的文件剪切到d文件夹中
2.4 获得一个指定文件夹中所有的文件
GetFiles
Directory.GetFilles(@" ");
获取文件夹中的文件并且只能提取文件名
static void Main(string[] args)
{
string[] path=Directory.GetFiles(@"F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料\获取全部文件的练习");
for(int i=0;i<path.Length;i++)
{
int index = path[i].LastIndexOf('\\');
string newPath= path[i].Substring(index + 1);
Console.WriteLine(newPath);
}
Console.ReadKey();
}
3 Path类的使用(操作路径)
3.1获取文件名称
Path.GetFileName(@" “);
Path类的获取文件与Directory获取文件不同,Path可以直接获取文件名称,而Directory则是获取路径名称
Console.WriteLine(Path.GetFileName(@“F:\c#学习视频\11.Net基础班第十一天\0326.Net基础班第十一天\资料\获取全部文件的练习\1”));
Path.GetFileNameWithoutExtension(@” ");获取文件名称但是不包括文件后面的拓展名例如:txt,jpg等
3.2获取文件的拓展名
Path.GetExtension(@" ");
拓展名例如:txt,jpg等
3.3获取文件夹的名称
Path.GetDirectoryName(@" ");
3.4获取绝对路径
绝对路径:根据文件路径直接在电脑上找到,例:F:\c#学习视频\11.Net基础班第十一天
相对路径:相对于应用程序的路径