C# 中 File 类操作文件
·
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))
{
// 操作
}
更多推荐
所有评论(0)