C# 文件与文件夹操作指南:深入探索流、文件流及文件夹管理
C# 中的文件操作是一个重要的功能,它允许读取、写入、修改以及管理存储在磁盘上的文件和文件夹。下面将介绍文件操作的一些基本概念,包括流(Streams)、文件流(FileStream)、字节流(实际上,FileStream
就是一种字节流),以及文件夹(或称为目录)操作。
1. 流(Streams)
在 C# 中,流(Streams)是一种抽象的概念,用于表示数据的流动。它可以是输入流(从源读取数据),也可以是输出流(向目标写入数据)。流是顺序的,意味着可以从头到尾地访问数据,但通常不支持直接访问流的中间部分。流可以是同步的或异步的,取决于如何使用它们。
2. 文件流(FileStream)
FileStream
类是 System.IO
命名空间下的一个类,它用于文件的字节级操作。可以使用 FileStream
来读取、写入、打开或创建文件。FileStream
提供了同步和异步的读写方法,以及用于控制文件访问(如只读、只写、读写)和共享(如独占访问、共享访问)的选项。
示例代码(创建和写入文件)
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string filePath = "example.txt";
string content = "Hello, World!";
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] bytes = Encoding.UTF8.GetBytes(content);
fs.Write(bytes, 0, bytes.Length);
}
Console.WriteLine("文件创建和内容写入.");
}
}
3. 字节流
在 C# 中,当提到字节流时,通常指的是能够按字节读写数据的流,如 FileStream
。字节流非常适合于处理二进制文件,如图片、音频或视频文件,以及那些需要精确控制文件内容的场景。
4. 文件夹操作
文件夹(或称为目录)操作允许创建、删除、移动和枚举文件夹及其内容。C# 中的 Directory
类和 DirectoryInfo
类提供了丰富的静态和实例方法来执行这些操作。
示例代码(创建文件夹)
using System;
using System.IO;
class Program
{
static void Main()
{
string folderPath = "NewFolder";
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
Console.WriteLine("Folder created.");
}
else
{
Console.WriteLine("Folder already exists.");
}
}
}
示例代码(枚举文件夹中的文件)
using System;
using System.IO;
class Program
{
static void Main()
{
string folderPath = @"C:\path\to\your\folder";
string[] files = Directory.GetFiles(folderPath);
foreach (string file in files)
{
Console.WriteLine(file);
}
}
}
通过这些基本的文件和文件夹操作,可以在 C# 应用程序中执行复杂的文件处理任务。记得在使用完文件或文件夹资源后,适当地关闭它们以释放资源。在上面的示例中,using
语句用于自动关闭 FileStream
,这是一种很好的做法。