C# path类:操作路径、File类:操作文件、文件流读写

该文详细介绍了在C#中如何进行路径操作,包括获取文件名、扩展名、目录以及绝对路径。同时,文章还涵盖了文件的创建、删除、复制,以及使用不同编码进行读写操作。对于大文件,文章讨论了使用文件流进行读取和写入的方法。
摘要由CSDN通过智能技术生成

路径操作

            string str = @"F:\视频\C#全套视频教程\视频教程之10-面向对象多态\(第十二天)\video\1、复习.avi";
            //获取文件名
            string str1 = Path.GetFileName(str);
            Console.WriteLine(str1);

            //获取文件名 不包含扩展名
            string str2 = Path.GetFileNameWithoutExtension(str1);
            Console.WriteLine(str2);

            //获取文件扩展名
            string str3 = Path.GetExtension(str1);
            Console.WriteLine(str3);

            // 获取文件所在的目录
            string str4 = Path.GetDirectoryName(str);
            Console.WriteLine(str4);

            // 获取文件的绝对路径
            string str5 = Path.GetFullPath(str);
            Console.WriteLine(str5);

            // 路径组合
            string str6 = Path.Combine(@"1", @"2");
            Console.WriteLine(str6);

文件操作(小文件)

            //F:\xue_xi\1.txt
            //创建文件
            File.Create(@"F:\xue_xi\1.txt");

            // 删除文件
            File.Delete(@"F:\xue_xi\1.txt");

            string path = @"F:\xue_xi\1.txt";
            string path1 = @"F:\xue_xi\2.txt";

            //复制(原文件、新文件)
            File.Copy(path, path1);

            //文件读写(一)
            //读取
            string path = @"F:\xue_xi\1.txt";
            byte[] buffer = File.ReadAllBytes(path);
            // 指定编码格式: Unicode(UTF-8 + UTF-7 + UTF-32) GB2312是简体中文 GBK(简体中文+繁体中文)
            // 常用:UTF-8 GB2312 ASCII GBK 
            // GetString 是转为字符串,GetEncoding(GB2312 ASCII GBK )
            //string str = Encoding.GetEncoding("GB3212").GetString(buffer);
            //string str = Encoding.GetEncoding("GBK").GetString(buffer);
            //string str = Encoding.GetEncoding("ASCII").GetString(buffer);
            string str = Encoding.UTF8.GetString(buffer);
            Console.WriteLine(str);

            //写入
            string path = @"F:\xue_xi\1.txt";
            string str = "今天真不错";
            // 字符串 转 字节数组
            byte[] buffer = Encoding.Default.GetBytes(str);
            File.WriteAllBytes(path, buffer);
            Console.WriteLine("写入成功");

            //文件读写(二)

            //按行读取
            string path = @"F:\xue_xi\1.txt";
            string[] contents = File.ReadAllLines(path, Encoding.Default);
            foreach (string line in contents)
            {
                Console.WriteLine(line);
            }
            // 全读取 
            string path = @"F:\xue_xi\1.txt";
            string str = File.ReadAllText(path, Encoding.Default);
            Console.WriteLine(str);

            // 行方式 写入
            string path = @"F:\xue_xi\1.txt";
            File.WriteAllLines(path, new string[] { "对对对", "是是是", "你说的都对 " });
            Console.WriteLine("已经写入");

            // 全写入
            string path = @"F:\xue_xi\1.txt";
            File.WriteAllText(path, "对对对对对对对对对对对对对对对对对对对对对,是是是是是是是是是");
            Console.WriteLine("已经写入");
            
            // 追加
            string path = @"F:\xue_xi\1.txt";
            File.AppendAllText(path, "恩恩恩恩恩恩恩恩恩恩恩恩恩");

文件流读取(大文件)

            // 文件流读取

            // 路径、操作(追加、打开 若无 则创建、)、权限r w 、
            // FileMode.Append 追加
            // FileMode.OpenOrCreate 打开 若无 则创建
            string path = @"F:\xue_x\";
            // 读取 Read 、 写入 Write 、 
            FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
            byte[] buffer = new byte[1024 * 1024 * 5];  // 5MB
            int r = fsRead.Read(buffer, 0, buffer.Length);
            // 将字节数组 编码格式解码
            string s = Encoding.Default.GetString(buffer, 0, r);
            // 关闭流
            fsRead.Close();
            // 释放资源
            fsRead.Dispose();

            // 文件流写入
            string path = @"F:\xue_x\";
            using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)){

                string str = "写入的内容";
                //byte[] buffer = new byte[1024 * 1024 * 5];  // 5MB
                byte[] buffer = Encoding.Default.GetBytes(str);
                // 写入的内容、起点、终点、
                fsRead.Write(buffer, 0, buffer.Length);
            }


            Console.WriteLine("存在");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默执_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值