在C#中,DirectoryInfo类是System.IO命名空间中的一个类,用于操作文件夹(目录)。通过DirectoryInfo类,我们可以方便地创建、删除、移动和枚举文件夹。本文将详细介绍DirectoryInfo类的常用方法和属性,并提供相应的代码示例。
目录
- 创建DirectoryInfo实例
- 常用方法
- Create()
- Delete()
- MoveTo(string destDirName)
- GetDirectories()
- GetFiles()
- 常用属性
- FullName
- Name
- Parent
- Exists
- 完整示例
- 总结
- 参考资料
创建DirectoryInfo实例
要使用DirectoryInfo类,首先需要创建一个DirectoryInfo实例。可以通过以下两种方式来创建:
- 使用构造函数创建
string path = "C:\\myFolder";
DirectoryInfo di = new DirectoryInfo(path);
通过指定文件夹路径来创建一个DirectoryInfo对象。
- 使用静态方法获取
DirectoryInfo di = new DirectoryInfo(@"C:\myFolder");
直接使用静态方法Directory.CreateDirectory()
来获取一个DirectoryInfo对象。
常用方法
下面是DirectoryInfo类的常用方法:
Create()
创建文件夹
di.Create();
可以使用Create()方法来创建一个新的文件夹。如果文件夹已经存在,该方法不会抛出异常。
Delete()
删除文件夹
di.Delete();
使用Delete()方法可以删除指定的文件夹。该方法将删除目标文件夹及其所有子文件夹和文件。如果目标文件夹不存在,则该方法不会抛出异常。
MoveTo(string destDirName)
移动文件夹
di.MoveTo("D:\\newFolder");
使用MoveTo()方法可以将文件夹移动到指定的目录中。目标目录必须不存在,否则将抛出异常。
GetDirectories()
获取子文件夹列表
DirectoryInfo[] subDirs = di.GetDirectories();
foreach (DirectoryInfo subDir in subDirs)
{Console.WriteLine(subDir.Name);
}
使用GetDirectories()方法可以获取当前文件夹下所有的子文件夹。该方法返回一个DirectoryInfo对象数组,可以通过遍历数组来访问每个子文件夹。
GetFiles()
获取文件列表
FileInfo[] files = di.GetFiles();
foreach (FileInfo file in files)
{Console.WriteLine(file.Name);
}
使用GetFiles()方法可以获取当前文件夹下的所有文件。该方法返回一个FileInfo对象数组,可以通过遍历数组来访问每个文件。
常用属性
下面是DirectoryInfo类的常用属性:
FullName
获取文件夹的完整路径
string folderPath = di.FullName;
Console.WriteLine(folderPath);
使用FullName属性可以获取文件夹的完整路径,包括文件夹的根目录。
Name
获取文件夹的名称
string folderName = di.Name;
Console.WriteLine(folderName);
使用Name属性可以获取文件夹的名称。
Parent
获取文件夹的父级目录
DirectoryInfo parentFolder = di.Parent;
Console.WriteLine(parentFolder.Name);
使用Parent属性可以获取文件夹的父级目录,返回一个DirectoryInfo对象。
Exists
判断文件夹是否存在
if (di.Exists)
{Console.WriteLine("文件夹存在");
}
else
{Console.WriteLine("文件夹不存在");
}
使用Exists属性可以判断文件夹是否存在,返回一个布尔值。
完整示例
using System;
using System.IO;namespace DirectoryInfoDemo
{class Program{static void Main(string[] args){string path = @"C:\myFolder";DirectoryInfo di = new DirectoryInfo(path);// 创建文件夹di.Create();// 移动文件夹di.MoveTo("D:\\newFolder");// 获取子文件夹列表DirectoryInfo[] subDirs = di.GetDirectories();foreach (DirectoryInfo subDir in subDirs){Console.WriteLine(subDir.Name);}// 获取文件列表FileInfo[] files = di.GetFiles();foreach (FileInfo file in files){Console.WriteLine(file.Name);}// 获取文件夹的完整路径string folderPath = di.FullName;Console.WriteLine(folderPath);// 获取文件夹的名称string folderName = di.Name;Console.WriteLine(folderName);// 获取文件夹的父级目录DirectoryInfo parentFolder = di.Parent;Console.WriteLine(parentFolder.Name);// 判断文件夹是否存在if (di.Exists){Console.WriteLine("文件夹存在");}else{Console.WriteLine("文件夹不存在");}}}
}
总结
通过DirectoryInfo类,我们可以轻松地创建、删除、移动和枚举文件夹。本文详细介绍了DirectoryInfo类的常用方法和属性,并提供了相应的代码示例。希望本文对你有所帮助!如果有任何问题,请随时留言。
参考资料
- Microsoft Docs - DirectoryInfo Class