在C#中,System.IO 命名空间提供了多种操作文件和文件夹的类。Directory 和 DirectoryInfo 是两个用于操作文件夹的类。
Directory 类
Directory 类是一个静态类,提供了创建、移动、删除文件夹等操作的静态方法。
示例:使用 Directory 类操作文件夹
using System;
using System.IO;
class Program
{
static void Main()
{
// 创建一个新文件夹
string newFolderPath = @"C:\NewFolder";
if (!Directory.Exists(newFolderPath))
{
Directory.CreateDirectory(newFolderPath);
Console.WriteLine("New folder created.");
}
// 获取特定文件夹的信息
string existingFolderPath = @"C:\ExistingFolder";
DirectoryInfo di = new DirectoryInfo(existingFolderPath);
// 列出文件夹中的所有文件
foreach (FileInfo file in di.GetFiles())
{
Console.WriteLine(file.Name);
}
// 移动文件夹
string sourcePath = @"C:\ExistingFolder";
string targetPath = @"C:\NewLocation\ExistingFolder";
Directory.Move(sourcePath, targetPath);
// 删除文件夹
string folderToDelete = @"C:\FolderToDelete";
Directory.Delete(folderToDelete, true); // true 表示删除包括所有子文件夹和文件
}
}
DirectoryInfo 类
DirectoryInfo 类提供了一个对象模型,用于对文件夹进行操作,如移动、删除、获取子文件夹和文件列表等。
示例:使用 DirectoryInfo 类操作文件夹
using System;
using System.IO;
class Program
{
static void Main()
{
// 创建一个 DirectoryInfo 对象
string folderPath = @"C:\NewDirectory";
DirectoryInfo di = Directory.CreateDirectory(folderPath);
// 获取文件夹的属性
Console.WriteLine("Created: " + di.CreationTime);
Console.WriteLine("Last accessed: " + di.LastAccessTime);
// 获取子文件夹和文件的列表
foreach (DirectoryInfo subDi in di.GetDirectories())
{
Console.WriteLine(subDi.Name);
}
foreach (FileInfo fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
// 移动文件夹
di.MoveTo(@"C:\NewLocation\NewDirectory");
// 删除文件夹
di.Delete(true); // true 表示删除包括所有子文件夹和文件
}
}
注意事项
确保在执行操作前检查文件夹路径是否有效,以及是否具有足够的权限。
使用 Directory.Exists 方法可以检查文件夹是否存在。
使用 DirectoryInfo 对象可以获取文件夹的详细信息,如创建时间、最后访问时间等。
在移动或删除文件夹时,如果文件夹包含子文件夹和文件,需要使用 true 作为参数传递给 Delete 方法或 Directory.Move 方法,以确保递归删除。
移动文件夹时,可以使用 Directory.Move 或 DirectoryInfo.MoveTo 方法。
错误处理是文件和文件夹操作中的重要部分,建议使用 try-catch 块来捕获可能发生的异常。
想了解更多游戏开发知识,可以扫描下方二维码,免费领取游戏开发4天训练营课程