版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyp0304Devin/article/details/84967892
一、前言
在学习C#文件管理类的时候涉及到了很多关于文件的基本操作和基本方法。现在把这些基本操作和方法简单的总结一下。
1.基本操作:判断、复制、移动、删除
2.基本方法
(1)Feil.Exist();
(2)File.Copy();
(3)File.Move();
(4)File.Delete();
二、实例演示
1.创建文件
string path = @"E:\提高班\计算机\2.CS学习\02 C#\传智播客基础实训3\20121106C#基础\book.txt";
File.Create(path);//这个在指定路径下创建一个文件,如果文件存在则覆盖该文件。
File.CreateText(path);//创建或者打开一个文件写入UTF-8编辑的文本。
2.判断文件
bool flag =File.Exists(path);
if (File.Exists(path)) //判断这个路径下有没有这个文件,有就删除,没有就创建一个
{
File.Delete(path);
}
else
{
File.Create(path);
}
3.移动文件
创建一个文件夹,把之前文件夹中的东西移动到新建的文件夹里。
//把文件移动到指定的路径下,可以改名,如果那个路径下有这个文件,会报异常
File.Move(path,path1);
4. 复制文件
复制路径的时候如果另一个路径中有这个文件了 , 名字相同,会报异常,可以利用这个方法重载,在第三个参数的位置上写上true,就可以覆盖那个文件了。
File.Copy(path,path1,true )//这个方法是把这个文件复制到另一个路径下,复制的同时也可以修改。
-------------------------------------------------------------------------------------------------------------------------------
除了这些基本方法外还有一些其他的常用方法
1.获取当前时间
DateTime dt= new DateTime() ;
Console.WriteLine(dt.Day );
2.获取当前时间和日期
DateTime dt = new DateTime();
Console.WriteLine(DateTime .Now );
3.创建一个文件夹,获得创建时间
DateTime dt = File.GetCreationTime(path);
Console.WriteLine(dt);
4.获取修改时间
DateTime dt = File.GetCreationTime(path);
5.获取到这个文件夹写入东西的时间,也就是访问时间
DateTime dt=File.GetLastWriteTime(path);
三、读文件和写文件
1.读文件
(1)编码错误
返回来的是一个字符串数组。用for循环遍历文件中的内容,把里面的内容以一行一行的形式显示出来。但是在这里不加Encoding.Default,显示出来的内容会编码错误。
string path = @"E:\提高班\计算机\2 CS学习\02 C#\传智播客基础实训3\20121106C#基础\book.txt";
string[] str = File.ReadAllLines(path);
for (int i = 0; i <str.Length; i++)
{
Console.WriteLine(str[i]);
}
Console.WriteLine("哈哈,小杨又变帅了");
Console.ReadKey();
(2)编码正确
与编码错误不同的就是在这里加了Encoding.Default,所以显示出来的内容是正确的。
string[] str = File.ReadAllLines(path,Encoding.Default );
for (int i = 0; i <str.Length; i++)
{
Console.WriteLine(str[i]);
}
(3)读出指定文件中的全部内容
string str = File.ReadAllText(path, Encoding.Default);
Console.WriteLine(str);
2.写文件
(1)把每一个数组作为一行数据放在文件中,把之前的覆盖掉。
string[] names = new string[] { "老牛", "老马", "老苏", "小月月", "春哥", "傻子" };
File.WriteAllLines(path, names);
(2)另一种方法
把之前文件中的内容覆盖掉了,变成一行。
string[] names = new string[] { "老牛", "老马", "老苏", "小月月", "春哥", "傻子" };
File.WriteAllText(path, "哈哈,小张也变帅了",Encoding .UTF8 );
(3)追加,在上次的基础上通过for循环加入想要写的东西,追加多少次可以由自己设定。
for (int i = 0; i < 5; i++)
{
File.Create(path + "\\book" + i + ".txt");
}