【C#】File、FileInfo、Directory、DirectoryInfo文件操作类的用法介绍(扩展FileStream、StreamWriter 、StreamReader)

本文详细介绍了C#中如何使用File、FileInfo、Directory和DirectoryInfo类进行文件和目录的操作,包括创建、读写、删除等常见方法,并提供了丰富的代码示例。

简单介绍:
四个类都是属于System.IO命名空间

名称 操作对象 使用方法
File 文件 静态类,直接调用静态方法处理文件
FileInfo 文件 表示磁盘上的物理文件,具有处理此文件的方法
Directory 目录 静态类,直接调用静态方法处理目录
DirectoryInfo 目录 表示磁盘上的物理目录,具有处理此目录的方法

(一)File 和 FileInfo

1.区别及选择:

区别
▶File类是全静态的,只有静态方法,不可实例化。
▶FileInfo类必须实例化使用,不包含静态方法。
选择
▶一般如果只是单一方法调用,则可以选择File类,不需要实例对象再调用方法。
▶如果是需要对某一个文件进行多项操作,则选择FileInfo实例化对象会好一点,不需要使用File类每次查找文件进行安全检查。

2.File
(1).常用方法及作用介绍
方法 作用
bool Exists(string path) 确定指定的文件是否存在
void Delete(string path) 删除指定的文件
DateTime GetCreationTime(string path) 返回指定文件或目录的创建日期和时间
FileStream Create(string path) 在指定路径中创建或覆盖文件
StreamWriter CreateText(string path) 创建或打开用于写入 UTF-8 编码文本的文件
void Copy(string sourceFileName, string destFileName, bool overwrite) 将现有文件复制到新文件。 允许覆盖同名的文件
FileStream Open(string path, FileMode mode, FileAccess access, FileShare share) 打开指定路径上的 System.IO.FileStream,具有带读、写或读/写访问的指定模式和指定的共享选项
string[] ReadAllLines(string path, Encoding encoding) 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件
string ReadAllText(string path, Encoding encoding) 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件
void WriteAllLines(string path, string[] contents, Encoding encoding) 创建一个新文件,在其中写入指定的字节数组,然后关闭该文件
void WriteAllText(string path, string contents, Encoding encoding) 创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件
(2).部分方法测试使用:

测试前截图(文件夹里什么都没有):
在这里插入图片描述
贴上测试代码:

        //要测试的文件路径
        static string path = @"J:\Test\FileTest.txt";

        static void Main(string[] args)
        {
   
   
            Test_By_File();
        }

        static void Test_By_File()
        {
   
   
            //先判断文件是否存在
            Console.WriteLine("文件是否存在:" + File.Exists(path));
            //按照路径创建一个文件
            StreamWriter writer = File.CreateText(path);
            writer.Close();//关闭文件

            Console.WriteLine("现在文件是否存在呢:" + File.Exists(path));
            //写入文件三句话
            File.WriteAllText(path, "这是一个测试\n测试什么呢\n测试File静态类");
            //按行读取文件
            Console.WriteLine("-----读取文件:");
            foreach (var line in File.ReadAllLines(path))
            {
   
   
                Console.WriteLine(line);
            }
            Console.ReadKey();
        }

运行截图:

运行后文件截图:
在这里插入图片描述

3.FileInfo
(1).常用属性及方法介绍
属性或方法 作用
DirectoryInfo Directory { get; } 获取父目录的实例
string DirectoryName { get; } 获取表示目录的完整路径的字符串
override string Name { get; } 获取文件名
bool IsReadOnly { get; set; } 获取或设置确定当前文件是否为只读的值
void MoveTo(string destFileName) 将指定文件移到新位置,提供要指定新文件名的选项
FileInfo CopyTo(string destFileName, bool overwrite) 将现有文件复制到新文件,overwrite 如果允许覆盖现有文件,则为 true;否则为 false
override void Delete() 永久删除文件
FileStream Open(FileMode mode, FileAccess access, FileShare share) 用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件
StreamReader OpenText() 创建使用从现有文本文件中读取的 UTF8 编码的 System.IO.StreamReader
StreamWriter AppendText() 创建一个 System.IO.StreamWriter,它向 System.IO.FileInfo 的此实例表示的文件追加文本
FileInfo Replace
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值