C# 语言 如何进行文件操作

C#阿木 发布于 2025-06-13 12 次阅读


C 文件操作技术详解

在软件开发过程中,文件操作是必不可少的一部分。C 作为一种强大的编程语言,提供了丰富的文件操作功能。本文将围绕 C 语言,详细介绍文件操作的相关技术,包括文件的读取、写入、复制、移动、删除等操作,以及如何处理文件流和目录操作。

1. 文件读取

文件读取是文件操作中最基本的功能之一。在 C 中,可以使用 `StreamReader` 类来读取文本文件,使用 `FileStream` 类来读取二进制文件。

1.1 读取文本文件

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.txt";
try
{
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

1.2 读取二进制文件

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.bin";
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
// 处理读取到的数据
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

2. 文件写入

文件写入是将数据写入到文件中的过程。在 C 中,可以使用 `StreamWriter` 类来写入文本文件,使用 `FileStream` 类来写入二进制文件。

2.1 写入文本文件

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.txt";
try
{
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("Hello, World!");
writer.WriteLine("This is a test.");
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

2.2 写入二进制文件

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.bin";
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] data = { 0x01, 0x02, 0x03, 0x04 };
fileStream.Write(data, 0, data.Length);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

3. 文件复制、移动和删除

文件复制、移动和删除是文件操作中的常见需求。在 C 中,可以使用 `File` 类和 `Directory` 类来实现这些操作。

3.1 文件复制

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string sourcePath = @"C:examplesource.txt";
string destinationPath = @"C:exampledestination.txt";
try
{
File.Copy(sourcePath, destinationPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

3.2 文件移动

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string sourcePath = @"C:examplesource.txt";
string destinationPath = @"C:exampledestination.txt";
try
{
File.Move(sourcePath, destinationPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

3.3 文件删除

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.txt";
try
{
File.Delete(filePath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

4. 文件流操作

文件流是处理文件数据的一种方式,它允许程序以流的形式读取和写入文件。

4.1 文件流读取

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.txt";
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
int data;
while ((data = fileStream.ReadByte()) != -1)
{
Console.Write((char)data);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

4.2 文件流写入

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string filePath = @"C:examplefile.txt";
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] data = { 0x01, 0x02, 0x03, 0x04 };
fileStream.Write(data, 0, data.Length);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

5. 目录操作

目录操作包括创建目录、删除目录、列出目录内容等。

5.1 创建目录

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string directoryPath = @"C:exampleewDir";
try
{
Directory.CreateDirectory(directoryPath);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

5.2 删除目录

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string directoryPath = @"C:exampleewDir";
try
{
Directory.Delete(directoryPath, true); // true 表示删除目录及其所有子目录和文件
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

5.3 列出目录内容

csharp
using System;
using System.IO;

class Program
{
static void Main()
{
string directoryPath = @"C:example";
try
{
string[] files = Directory.GetFiles(directoryPath);
string[] directories = Directory.GetDirectories(directoryPath);

Console.WriteLine("Files:");
foreach (string file in files)
{
Console.WriteLine(file);
}

Console.WriteLine("Directories:");
foreach (string directory in directories)
{
Console.WriteLine(directory);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

6. 总结

本文详细介绍了 C 语言中的文件操作技术,包括文件读取、写入、复制、移动、删除,以及文件流和目录操作。通过学习这些技术,开发者可以更加灵活地处理文件数据,提高软件的健壮性和效率。在实际开发中,应根据具体需求选择合适的文件操作方法,确保程序的正确性和稳定性。