C#基础(19)——path、File类的基本操作

本文详细介绍了C#中文件操作的基础知识,包括如何使用Path类处理文件路径,File类进行文件的基本操作,如创建、读取、写入及追加等,并解释了绝对路径与相对路径的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、path类

F12转到定义,这是静态类,可以[类名].方法名:
这里写图片描述
以前的方法截取字符串:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Path类
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Administrator\Desktop\test.txt";
            int index = path.LastIndexOf("\\");
            string str = path.Substring(index+1);
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}

取文件夹名、扩展名和后缀:

这里写图片描述

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Path类
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Administrator\Desktop\test.txt";
            string str = Path.GetFileName(path);
            Console.WriteLine(str);
            Console.WriteLine("没有扩展名:{0}",Path.GetFileNameWithoutExtension(path));
            Console.WriteLine("取扩展名:{0}", Path.GetExtension(path));
            Console.WriteLine("文件夹名路径:{0}", Path.GetDirectoryName(path));
            Console.WriteLine("全路径:{0}", Path.GetFullPath(path));
            Console.WriteLine("组合路径:{0}", Path.Combine(path,"my.txt"));
            Console.ReadKey();
        }
    }
}

2、File类

用于创建、写入文件等,如创建:

 string path = @"C:\Users\Administrator\Desktop\test.txt";
            File.Create(path);
            Console.WriteLine("创建成功!");//已存在,会被覆盖
            Console.ReadKey();

删除文件:

 string path = @"C:\Users\Administrator\Desktop\test.txt";
            File.Delete(path);
            Console.WriteLine("删除成功!");//彻底删除,不能恢复
            Console.ReadKey();

拷贝文件:

string path = @"C:\Users\Administrator\Desktop\test.txt";
            File.Create(path);//出问题:
            //其他信息: 文件“C:\Users\Administrator\Desktop\test.txt”正由另一进程使用,因此该进程无法访问此文件。
            File.Copy(path, @"C:\Users\Administrator\Desktop\test1.txt");
            Console.ReadKey();

3、文件的读取

去读取行,只能读取小文件,因为它是读取全部到内存,返回string 的数组:

 string[] contains=File.ReadAllLines(path);
            for (int i = 0; i < contains.Length; i++)
            {
                Console.WriteLine(contains[i]);
            }

用ReadAllText,返回string:

string path = @"C:\Users\Administrator\Desktop\test.txt";
            string str = File.ReadAllText(path);
            Console.WriteLine(str);

以上只用于处理文本,当为视频图像时:

string path = @"C:\Users\Administrator\Desktop\test.txt";
            byte[] btys = File.ReadAllBytes(path);
            //将字节数组中的每一个元素按照我们指定的编码格式解码成字符串
            //utf-8 GB2312 GBK  ASCII Unicode
            string s = Encoding.Default.GetString(btys);
            Console.WriteLine(s);

4、文件的写入

以字节形式:

string path = @"C:\Users\Administrator\Desktop\new.txt";
            string str = "今天天气好晴朗,处处好风光!";
            byte[] buffer = Encoding.Default.GetBytes(str);
            File.WriteAllBytes(path, buffer);
            Console.WriteLine("Write Down");

以WriteAllLine形式:

string path = @"C:\Users\Administrator\Desktop\new.txt";
            File.WriteAllLines(path, new string[] { "111", "222", "333", "444" });
            Console.WriteLine("Write Down");

以WriteAllText

string path = @"C:\Users\Administrator\Desktop\new.txt";
            File.WriteAllText(path, "111\r\n2222\r\n333");
            Console.WriteLine("Write Down");

5、文件的追加

文件的追加,不会覆盖和删除原文件,相当于Python的with open(‘haproxy’, ‘a’, encoding=’utf-8’) as f1:
方法1:

string path = @"C:\Users\Administrator\Desktop\new.txt";
            File.AppendAllText(path, "我是新来的。");
            Console.WriteLine("Write Down");

方法2:

 string path = @"C:\Users\Administrator\Desktop\new.txt";
            File.AppendAllLines(path,new string[] {"aaaaa"});
            Console.WriteLine("Write Down");

6、绝对路径和相对路径

绝对路径:通过电脑给定的完整路径
相对路径:可执行路径下的路径“new.txt”,bin→debug下
所以我们在开发时尽量使用相对路径

7、文件流

解决读取内容过小问题,处理大文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

何以问天涯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值