C#文件操作信息

目录

 

文件操作FileInfo

文件夹操作DirectoryInfo

File读写文件

FileStream读写文件

StreamReader和StreamWriter读写文本文件


文件操作FileInfo

          //相对路径:就是找当前程序所在的路径
          FileInfo fileInfo = new FileInfo("TextFile1.txt");

            //绝对路径:加上文件完整的路径名
            FileInfo fileInfo = new FileInfo(@"文件路径");
            Console.WriteLine(fileInfo.Exists);//判断该文件是否存在

            Console.WriteLine(fileInfo.Name);//文件名.后缀

            Console.WriteLine(fileInfo.Directory);//取得文件所在路径

            Console.WriteLine(fileInfo.Length);//文件大小

            Console.WriteLine(fileInfo.IsReadOnly);//文件是否为只读

            fileInfo.Delete();//删除的是输出路径的文件,工程下的文件还是存在的

            fileInfo.CopyTo("tt.txt");

            FileInfo fileInfo = new FileInfo("siki.txt");
            if (fileInfo.Exists == false)//如果当前文件不存在
            {
                fileInfo.Create();//创建当前文件
            }
            fileInfo.MoveTo("siki2.txt");//重命名操作

文件夹操作DirectoryInfo

            DirectoryInfo dirInfo = new DirectoryInfo(@"文件夹绝对路径");//查看Debug文件夹的信息

            Console.WriteLine(dirInfo.Exists);//文件夹是否存在
            Console.WriteLine(dirInfo.Name);//文件夹名字
            Console.WriteLine(dirInfo.Parent);//文件夹父目录
            Console.WriteLine(dirInfo.Root);//文件夹根目录
            Console.WriteLine(dirInfo.CreationTime);//文件夹创建时间
            dirInfo.CreateSubdirectory("siki");//创建文件夹

            DirectoryInfo dirInfo = new DirectoryInfo("test");
            if (dirInfo.Exists == false)
            {
                dirInfo.Create();//创建目录
            }

File读写文件

string[] strArray = File.ReadAllLines("TextFile1.txt");//读取文件,把每一个行文本读取成一个字符串,最后组成一个字符串的数组
            foreach (var s in strArray)
            {
                Console.WriteLine(s);
            }
            string s = File.ReadAllText("TextFile1.txt");//把所有文本读成一个字符串
            Console.WriteLine(s);

            byte[] byteArray = File.ReadAllBytes("3.LINQ.png");//字节读取
            foreach (var b in byteArray)
            {
                Console.Write(b);
            }


            File.WriteAllText("textfile2.txt", "hello sdf中国");//全部写入
            File.WriteAllLines("textfile3.txt",new string[]{" sdfsdflk","213412","流口水的减肥"});//按行写入,每个字符串数组的一个元素被写成一行

            byte[] data = File.ReadAllBytes("3.LINQ.png");
            File.WriteAllBytes("4.png",data);

FileStream读写文件

            //1,创建文件流 用来操作文件
            FileStream stream = new FileStream("TextFile1.txt",FileMode.Open);//打开的方式FileMode有很多种

            //2, 读取或者写入数据
            byte[] data = new byte[1024];//数据容器

            //1 byte = 1字节  1024byte=1KB 1024KB=1MB 1024MB = 1GB 1024GB=1T
            while (true)
            {
                int length = stream.Read(data, 0, data.Length);
                if (length == 0)
                {
                    Console.WriteLine("读取结束");
                    break;
                }
                for (int i = 0; i < length; i++) 
                {
                    Console.Write(data[i] + " ");
                }
            }

            //使用filestream完成文件复制
             1.5MB = 1.5*1024KB = 2k多KB= 2k多*1000 byte
            FileStream readStream = new FileStream("3.LINQ.png",FileMode.Open);

            FileStream writeStream = new FileStream("LINQ副本.png",FileMode.Create);

            byte[] data = new byte[1024];

            while (true)
            {
                int length = readStream.Read(data, 0, data.Length);
                if (length == 0)
                {
                    Console.WriteLine("读取结束");
                    break;
                }
                else
                {
                    writeStream.Write(data,0,length);   
                }
            }

            writeStream.Close();
            readStream.Close();

StreamReader和StreamWriter读写文本文件

            //创建文本文件读取流
            StreamReader reader = new StreamReader("TextFile1.txt");

            while (true)
            {
                string str = reader.ReadLine();//读取一行字符串
                if (str == null) break;
                Console.WriteLine(str);
            }
            string str = reader.ReadToEnd();//读取到文本的结尾(读取文本中所有的字符)
            Console.WriteLine(str);

            while (true)
            {
                int res = reader.Read();//读取
                if (res == -1)
                {
                    break;
                }
                else
                {
                    Console.Write((char)res);
                }
                
            }


            reader.Close();

            //文本文件写入流
            StreamWriter writer = new StreamWriter("textfile2.txt");//如果文件存在,那么文件会被覆盖
            while (true)
            {
                string message = Console.ReadLine();
                if (message == "q")
                    break;
                writer.Write(message);//写入一个字符串
                writer.WriteLine(message);//吸入一个字符串并换行
            }
            writer.Close();

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪猪派对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值