C# 目录操作
介绍
在 C# 中,目录操作是文件处理的重要组成部分。目录(也称为文件夹)是存储文件的容器,C# 提供了多种方法来创建、删除、移动和枚举目录及其内容。掌握这些操作对于管理文件系统至关重要。
本文将逐步介绍如何使用 C# 进行目录操作,并提供代码示例和实际应用场景。
目录操作基础
C# 提供了 System.IO
命名空间来处理目录操作。以下是一些常用的类和方法:
Directory
类:提供静态方法用于创建、移动和枚举目录及其内容。DirectoryInfo
类:提供实例方法用于操作目录。
创建目录
要创建一个新目录,可以使用 Directory.CreateDirectory
方法。以下是一个简单的示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\MyNewDirectory";
// 创建目录
Directory.CreateDirectory(path);
Console.WriteLine("目录已创建。");
}
}
输出:
目录已创建。
删除目录
要删除一个目录,可以使用 Directory.Delete
方法。以下是一个示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\MyNewDirectory";
// 删除目录
Directory.Delete(path);
Console.WriteLine("目录已删除。");
}
}
输出:
目录已删除。
警告
删除目录时,如果目录不为空,会抛出异常。可以使用 Directory.Delete(path, true)
来删除目录及其所有内容。
移动目录
要移动一个目录,可以使用 Directory.Move
方法。以下是一个示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = @"C:\MyNewDirectory";
string destinationPath = @"C:\MyMovedDirectory";
// 移动目录
Directory.Move(sourcePath, destinationPath);
Console.WriteLine("目录已移动。");
}
}
输出:
目录已移动。
枚举目录内容
要枚举目录中的文件和子目录,可以使用 Directory.GetFiles
和 Directory.GetDirectories
方法。以下是一个示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\MyNewDirectory";
// 获取目录中的所有文件
string[] files = Directory.GetFiles(path);
Console.WriteLine("文件列表:");
foreach (string file in files)
{
Console.WriteLine(file);
}
// 获取目录中的所有子目录
string[] directories = Directory.GetDirectories(path);
Console.WriteLine("子目录列表:");
foreach (string directory in directories)
{
Console.WriteLine(directory);
}
}
}
输出:
文件列表:
C:\MyNewDirectory\file1.txt
C:\MyNewDirectory\file2.txt
子目录列表:
C:\MyNewDirectory\SubDirectory1
C:\MyNewDirectory\SubDirectory2
实际应用场景
批量处理文件
假设你有一个包含大量文件的目录,你需要将这些文件移动到另一个目录并进行处理。以下是一个示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = @"C:\SourceDirectory";
string destinationPath = @"C:\ProcessedDirectory";
// 创建目标目录
Directory.CreateDirectory(destinationPath);
// 获取源目录中的所有文件
string[] files = Directory.GetFiles(sourcePath);
foreach (string file in files)
{
string fileName = Path.GetFileName(file);
string destFile = Path.Combine(destinationPath, fileName);
// 移动文件
File.Move(file, destFile);
// 处理文件(例如:读取内容)
string content = File.ReadAllText(destFile);
Console.WriteLine($"处理文件: {fileName}");
}
}
}
输出:
处理文件: file1.txt
处理文件: file2.txt
清理临时目录
在某些情况下,你可能需要清理临时目录中的所有文件和子目录。以下是一个示例:
csharp
using System;
using System.IO;
class Program
{
static void Main()
{
string tempPath = @"C:\TempDirectory";
// 删除目录及其所有内容
Directory.Delete(tempPath, true);
Console.WriteLine("临时目录已清理。");
}
}
输出:
临时目录已清理。
总结
在本文中,我们学习了如何在 C# 中进行目录操作,包括创建、删除、移动和枚举目录及其内容。这些操作是文件处理的基础,掌握它们对于管理文件系统至关重要。
附加资源
练习
- 创建一个程序,要求用户输入一个目录路径,然后列出该目录中的所有文件和子目录。
- 编写一个程序,将指定目录中的所有
.txt
文件移动到另一个目录,并在移动后删除源文件。 - 创建一个程序,递归地删除指定目录及其所有子目录和文件。
通过完成这些练习,你将更好地理解 C# 中的目录操作。