您现在的位置是:首页 >技术交流 >C#文件操作 FileInfo FileStream 网站首页技术交流
C#文件操作 FileInfo FileStream
简介C#文件操作 FileInfo FileStream
FileInfo 和 FileStream 都是 .NET 中用于文件操作的重要类,但它们各自有不同的用途和功能。理解这两者之间的联系和区别对于有效地进行文件操作至关重要。
FileInfo 类
FileInfo 是一个提供了多种便捷方法的类,用于获取文件信息或执行文件的基本操作(如创建、复制、删除、移动等)。它位于 System.IO 命名空间中。使用 FileInfo 可以让你更方便地管理文件,因为它提供了一种面向对象的方式来处理文件系统中的文件。
主要功能包括:
- 获取文件的信息,比如大小、扩展名等。
- 执行文件操作,比如创建、复制、移动、删除文件。
- 提供访问
FileStream的便捷方法,例如通过Create()方法返回一个FileStream对象。
FileStream 类
FileStream 是一个提供对文件进行读写访问的类,也位于 System.IO 命名空间中。它支持同步和异步读写,并允许你将文件视为流数据来处理。FileStream 可以直接用于低级别的文件操作,它为文件提供了无缓冲的访问,这对需要精细控制文件读写的场景特别有用。
主要功能包括:
- 读取和写入字节数据到文件。
- 支持随机访问文件内容。
- 能够以同步或异步方式操作文件。
它们之间的联系
虽然 FileInfo 和 FileStream 各有其独特的功能,但它们可以通过 FileInfo 提供的方法紧密合作:
-
通过
FileInfo.Create()创建FileStream:FileInfo提供了一个Create()方法,该方法会创建或覆盖指定路径下的文件,并返回一个新的FileStream对象。这使得你可以轻松地开始对文件进行低级别的读写操作。
-
利用
FileInfo.Open()方法:- 类似地,
FileInfo还提供了一个Open()方法,它允许你以不同的模式(如只读、读写)打开文件,并返回一个FileStream对象。
- 类似地,
-
结合使用进行高效文件操作:
- 你可以首先使用
FileInfo来检查文件是否存在、获取文件属性等,然后根据需要使用FileStream对文件进行详细的读写操作。
- 你可以首先使用
示例代码
这里有一个简单的例子,演示了如何结合使用 FileInfo 和 FileStream 来创建一个文件并向其中写入一些数据:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = @"..LogThreadErrorLog.txt";
byte[] buffer = { 0x20, 0x45, 0x67 }; // 示例数据
FileInfo fileInfo = new FileInfo(filePath);
// 使用 FileInfo 创建 FileStream
using (FileStream fs = fileInfo.Create())
{
fs.Write(buffer, 0, buffer.Length);
}
Console.WriteLine("文件已创建并写入数据");
}
}
在这个示例中,我们首先使用 FileInfo 来创建一个指向目标文件的对象,然后调用它的 Create() 方法获得一个 FileStream 对象,接着通过这个流对象向文件中写入数据。这样做的好处是可以先通过 FileInfo 检查文件状态,再决定是否以及如何使用 FileStream 进行进一步的操作。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结