文件的读写

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基础班第十一天
相对路径:相对于应用程序的路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值