C# File类文件操作方法详解与读写示例
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的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













