C# FileInfo类的用法(附带实例)
C# 中的 File 是一个静态类,这个类提供复制、创建、移动、删除、打开文件、加密、解密、检查文件是否存在、将文字数据附加在原文件后面、取得文件最后访问时间等功能。
本节要讲的 FileInfo 类提供了和 File 相同功能的方法,但是需要先用建构方法来声明并创建一个实体文件对象,然后才可以用这个对象操作类方法。
下列是声明并创建“D:\\fileC#\\file.txt”实体对象 myfile 的实例:
有了上述 myfile 文件对象,可以使用对象得到下列属性:
下列是此文件对象常用的方法:
【实例】创建文件的测试。
本节要讲的 FileInfo 类提供了和 File 相同功能的方法,但是需要先用建构方法来声明并创建一个实体文件对象,然后才可以用这个对象操作类方法。
下列是声明并创建“D:\\fileC#\\file.txt”实体对象 myfile 的实例:
FileInfo myfile = new FileInfo(“D:\\fileC#\\file.txt”);或是:
DirectoryInfo myfile = new DirectoryInfo(@“D:\\fileC#\\file.txt”);// 加@
有了上述 myfile 文件对象,可以使用对象得到下列属性:
- DirectoryName:文件夹名称;
- Exists:回传文件是否存在;
- Extension:回传扩展名;
- FullName:回传完整文件路径;
- CreationTime:创建时间;
- Length:回传文件长度;
- Name:文件名称。
下列是此文件对象常用的方法:
名称 | 说明 |
---|---|
AppendText() | 使用 FileInfo 对象创建一个 StreamWriter 的写入对象,将文件内容附加在写入对象内。如果文件不存在则会创建新的文件来执行写入;如果文件存在,则会将新的数据附加在文件末端。 |
Close() | 关闭文件,也就是关闭 StreamWriter 或 StreamReader 对象。 |
CopyTo() | 将现有的文件内容复制到新文件中。 |
Create() | 创建一个文件。 |
CreateText() | 使用 FileInfo 对象创建一个 StreamWriter 的写入对象,将文件写入此对象内。如果文件不存在则会创建新的文件来执行写入;如果文件存在,则原先内容会被清空再执行写入。 |
Decrypt() | 解密文件。 |
Delete() | 删除文件。 |
Encrypt() | 加密文件。 |
Flush() | 清空总线缓冲区内容。 |
MoveTo() | 移动文件到新位置。 |
Open() | 用特定模式打开文件。 |
OpenRead() | 打开只读的 FileStream。 |
OpenText() | 创建一个 StreamReader 的读取对象,可以读取 UTF-8 编码的文件。 |
OpenWrite() | 创建一个唯写(write-only)的 FileStream。 |
Replace() | 用 FileInfo 对象替换指定文件内容。 |
ToString() | 回传文件路径。 |
Write(String) | 将 String 数据写入,写入后插入点停在文件末端;有新的写入,则会继续在插入点位置写入。 |
WriteLine(String) | 将 String 数据写入,写入后会有换行字符,插入点停在文件末端;有新的写入,则会在新的行写入。 |
【实例】创建文件的测试。
string file = @"D:\tmp\tmp.txt"; FileInfo fi = new FileInfo(file); // 声明实体对象 fi.Create(); // 创建文件 Console.WriteLine($"文件夹:{fi.DirectoryName}"); Console.WriteLine($"文件名:{fi.Name}"); Console.WriteLine($"扩展名:{fi.Extension}"); Console.WriteLine($"创建时间:{fi.CreationTime}"); Console.WriteLine($"长度:{fi.Length}"); Console.WriteLine($"存在:{fi.Exists}");执行结果为:
文件夹:C:\tmp
文件名:tmp.txt
扩展名:.txt
创建时间:2025/5/12 21:05:08
长度:0
存在:True