C#中操作IO常用类

在C#里我们操作IO的话,微软为我们封装了好几个实用的静态类,如Directory类,File类  也提供了需要实例的普通类,DirectoryInfo,FileInfo类 

参考文档:微软官方文档

首先需要说明一下两者的图别和使用场景:

例如FileInfo类和File类之间许多方法调用都是相同的,但是FileInfo类没有静态方法,该类中的方法仅可以用于实例化的对象。File类是静态类,其调用需要字符串参数为每一个方法调用规定文件位置,因此如果要在对象上进行单一方法
调用,则可以使用静态File类。在这种情况下静态调用速度要快一些,因为.NET框架不必执行实例化对象并调用其方法。如果要在文件上执行几种操作,则实例化FileInfo对象并调用其方法更好一些,这样会提高效率,因为对象将在文件系统上引用正确的文件,而静态类却必须每次都必须寻找文件
 
结论:对于一个文件的单一操作,使用静态更好, 复杂操作使用普通类更好
 1     //File确定指定的文件是否存在。
 2       public static bool Exists(string path);
 3       //FileInfo获取指示文件是否存在的值。
 4       public override bool Exists { get; }
 5       
 6       //File类
 7       Console.WriteLine(File.Exists(@"D:\1\1.txt"));
 8       //FileInfo类
 9       FileInfo fi = new FileInfo(@"D:\1\1.txt");//创建文件对象
10      Console.WriteLine(fi.Exists);//判断文件是否存在  

 

 
 

File类

            //File类
            var dir = "C:\\Users\\enjoy\\Desktop\\Dir\\test.txt";
            //判断是否存在
            if (File.Exists(dir))
            {
                //追加文本
                File.AppendAllText(dir, "我要追加");
                string content = File.ReadAllText(dir);
                Console.WriteLine(string.Format("文本的内容为:{0}", content.Trim()));
          //删除文件 File.Delete(dir); }
else { using (var writer = File.CreateText(dir)) { writer.WriteLine("你好"); writer.WriteLine("再见"); } }

 

Directory类
 //Directory类
            string DirL = "C:\\Users\\enjoy\\Desktop\\Dir\\测试目录\\";
            //判断目录是否存在
            if (!Directory.Exists(DirL)) {
                //创建目录
                var ttt = Directory.CreateDirectory(DirL);
                //添加测试文件
                for (int i = 0; i < 10; i++)
                {
                    if (!File.Exists(DirL + "这是第" + i + ".txt"))
                    {
                        using (var temp = File.CreateText(DirL + "这是第" + i + ".txt"))
                        {
                            temp.Write("" + i + "记录所添加");
                            temp.Write("*********************");

                        }

                    }

                };
            }
            //获取目录文件路径
            string[] files = Directory.GetFiles(DirL);
            foreach (var item in files)
            {

                Console.WriteLine(item);
            }
            //删除路径
            Directory.Delete(DirL);

 

posted @ 2021-06-01 14:25  就爱啃西瓜  阅读(342)  评论(0编辑  收藏  举报