1. 基本文件操作

  判断文件是否存在:

bool exists = File.Exists(@"C:\test.txt");

创建文件:

// 创建或覆盖文件,返回 FileStream
using (FileStream fs = File.Create(@"C:\test.txt")) { }

// 创建并写入文本(覆盖)
File.WriteAllText(@"C:\test.txt", "Hello World");

复制文件:

// 简单复制(目标文件存在会异常)
File.Copy(@"C:\source.txt", @"C:\dest.txt");

// 覆盖目标文件
File.Copy(@"C:\source.txt", @"C:\dest.txt", overwrite: true);

移动/重命名文件:

// 移动文件(也可用于重命名)
File.Move(@"C:\old.txt", @"C:\new.txt");

// 覆盖已存在文件(.NET Core 3.0+)
File.Move(@"C:\old.txt", @"C:\new.txt", overwrite: true);

删除文件:

File.Delete(@"C:\test.txt");  // 如果文件不存在,不抛出异常

2. 文件读写操作

文本文件读写:

// 写入所有文本(覆盖)
File.WriteAllText(@"C:\test.txt", "内容");

// 写入所有文本(指定编码)
File.WriteAllText(@"C:\test.txt", "内容", Encoding.UTF8);

// 追加文本
File.AppendAllText(@"C:\test.txt", "追加内容");

// 读取所有文本
string content = File.ReadAllText(@"C:\test.txt");

// 按行读取到数组
string[] lines = File.ReadAllLines(@"C:\test.txt");

// 按行写入
string[] linesToWrite = { "行1", "行2", "行3" };
File.WriteAllLines(@"C:\test.txt", linesToWrite);

字节/二进制读写:

// 写入字节数组
byte[] data = { 0x48, 0x65, 0x6C, 0x6C, 0x6F };
File.WriteAllBytes(@"C:\test.bin", data);

// 读取字节数组
byte[] readData = File.ReadAllBytes(@"C:\test.bin");

流式读写(大文件):

// 写入流
using (FileStream fs = File.OpenWrite(@"C:\large.txt"))
using (StreamWriter sw = new StreamWriter(fs))
{
    sw.WriteLine("大文件写入");
}

// 读取流
using (FileStream fs = File.OpenRead(@"C:\large.txt"))
using (StreamReader sr = new StreamReader(fs))
{
    string line = sr.ReadLine();
}

// 打开文件(多种模式)
using (FileStream fs = File.Open(@"C:\test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
    // 操作文件流
}

3. 文件属性与信息

获取/设置属性:

// 获取属性
FileAttributes attrs = File.GetAttributes(@"C:\test.txt");

// 设置属性
File.SetAttributes(@"C:\test.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);

// 获取创建时间
DateTime createTime = File.GetCreationTime(@"C:\test.txt");
DateTime createTimeUtc = File.GetCreationTimeUtc(@"C:\test.txt");

// 获取最后修改时间
DateTime lastWrite = File.GetLastWriteTime(@"C:\test.txt");

// 获取最后访问时间
DateTime lastAccess = File.GetLastAccessTime(@"C:\test.txt");

// 设置时间
File.SetCreationTime(@"C:\test.txt", DateTime.Now);
File.SetLastWriteTime(@"C:\test.txt", DateTime.Now);

4. 实用高级操作

加密/解密(仅 NTFS):

// 加密文件(需要 NTFS 文件系统)
File.Encrypt(@"C:\test.txt");

// 解密文件
File.Decrypt(@"C:\test.txt");

替换文件内容:

// 替换文件内容并备份原文件
File.Replace(@"C:\new.txt", @"C:\old.txt", @"C:\backup.txt");

打开文件流的不同方式:

// 打开用于读取
using (FileStream fs = File.OpenRead(@"C:\test.txt")) { }

// 打开用于写入
using (FileStream fs = File.OpenWrite(@"C:\test.txt")) { }

// 打开用于追加
using (StreamWriter sw = File.AppendText(@"C:\test.txt"))
{
    sw.WriteLine("追加一行");
}

// 打开用于读写(自定义模式)
using (FileStream fs = File.Open(@"C:\test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read))
{
    // 操作
}

更多推荐