C# File类文件操作方法详解与读写示例

Theo
Theo
发布时间:2026-10-14| 5人浏览过
原创

C# 中的 System.IO.File 类提供了大量用于执行基本文件操作的静态方法,如创建、复制、移动、打开和删除文件。本文将深入解析这些方法的具体参数与用法,并演示如何处理二进制流与文本文件读写,帮助开发者高效管理文件系统。

准备工作与命名空间引用

在使用 File 类及其相关功能之前,必须在代码文件中引用 System.IO 命名空间。File 类本身是静态类,其成员无需实例化即可直接调用,主要服务于对文件路径指向的实体进行操作。

核心文件操作方法详解

第1步:创建文件 (File.Create)

使用 File.Create 方法可以在指定路径下新建一个文件。该方法返回一个 FileStream 对象,默认以读写权限打开。

  • 目的:生成新文件或覆盖现有文件(若存在)。
  • 重要提示:创建后必须显式关闭 FileStream,否则其他进程无法访问该文件。
private void MakeFile()
{
    // 创建文件并获取文件流
    FileStream NewText = File.Create(@"c:\tempuploads\newFile.txt");
    // 必须关闭句柄,释放资源
    NewText.Close();
}

第2步:打开文件 (File.Open)

File.Open 允许开发者以特定模式(如追加、写入、读取)打开文件。它比简单的文本写入更灵活,支持底层字节操作。

  • 参数:文件路径 path 和操作模式 FileMode(如 Append, Create, Write 等)。
  • 完成状态:成功返回 FileStream 实例。
private void OpenFile()
{
    // 以追加模式打开文件
    FileStream TextFile = File.Open(@"c:\tempuploads\newFile.txt", FileMode.Append);
    
    byte[] Info = {(byte)'h',(byte)'e',(byte)'l',(byte)'l',(byte)'o'};
    TextFile.Write(Info, 0, Info.Length); // 写入字节数组
    TextFile.Close(); // 关闭并保存更改
}

第3步:删除文件 (File.Delete)

使用 File.Delete 可以直接从磁盘移除文件。如果文件不存在且未设置检查,部分环境可能抛出异常,建议先判断是否存在。

private void DeleteFile()
{
    File.Delete(@"c:\tempuploads\newFile.txt");
}

第4步:复制文件 (File.Copy)

File.Copy 用于将文件从源位置复制到目标位置。第三个布尔参数 overwrite 决定当目标文件已存在时是否覆盖。

  • 注意:源文件不能是当前正在被流占用的文件,需确保无其他程序独占访问。
private void CopyFile()
{
    // 将 newFile.txt 复制到 BackUp.txt,true表示允许覆盖
    File.Copy(@"c:\tempuploads\newFile.txt", @"c:\tempuploads\BackUp.txt", true);
}

第5步:移动文件 (File.Move)

File.Move 可以将文件从一个目录移动到另一个目录,或者重命名文件。在 .NET Framework 早期版本中,通常要求源和目标位于同一逻辑盘,但在现代 .NET 环境中跨盘移动已得到广泛支持。

private void MoveFile()
{
    // 将文件移动并保留原名到根目录
    File.Move(@"c:\tempuploads\BackUp.txt", @"c:\BackUp.txt");
}

第6步:设置文件属性 (File.SetAttributes)

可以通过 File.SetAttributes 修改文件的系统属性,如只读、隐藏、存档等。可以使用按位或 | 组合多个属性。

private void SetFile()
{
    // 设置为只读和隐藏
    File.SetAttributes(@"c:\tempuploads\newFile.txt",
        FileAttributes.ReadOnly | FileAttributes.Hidden);
}

第7步:判断文件是否存在 (File.Exists)

在进行高危操作(如删除、覆盖)前,使用 File.Exists 返回布尔值进行检查是良好的编程习惯。

if(File.Exists(@"c:\tempuploads\newFile.txt"))
{
    // 执行存在时的逻辑,如备份后再操作
}
else
{
    // 执行不存在时的逻辑,如新建
}

文本文件的读写进阶

虽然 File 类提供了 AppendText、CreateText 和 OpenText 等便捷方法,但直接使用 StreamReader 和 StreamWriter 能提供更灵活的编码控制和流管理。

读取文本文件

使用 StreamReader 可以指定编码格式读取文件内容,避免中文乱码问题。

// 读取整个文件内容
StreamReader TxtReader = new StreamReader(@"c:\tempuploads\newFile.txt", System.Text.Encoding.Default);
string FileContent = TxtReader.ReadToEnd(); // 修正原文本错误方法名
TxtReader.Close();

写入文本文件

使用 StreamWriter 将字符串写入文件。需注意构造函数参数的正确性。

// 写入文件内容
StreamWriter TxtWriter = new StreamWriter(@"c:\tempuploads\newFile.txt", false, System.Text.Encoding.Default);
string FileContent = "Hello World";
TxtWriter.Write(FileContent);
TxtWriter.Close();

总结

C# 的 System.IO.File 类为开发者提供了简洁的文件原子操作接口,而 FileStream、StreamReader 和 StreamWriter 则满足了更复杂的流处理和编码控制需求。在实际开发中,务必记得在使用完流对象后调用 Close() 或将其放入 using 语句块中,以确保资源正确释放。

以上就是C#中File类文件操作方法及读写示例的详细内容,更多关于C#文件操作与System.IO的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。