C#DirectoryInfo类用法详解
什么是DirectoryInfo?
DirectoryInfo是C#中用于操作文件夹的类,可以用来获取、创建、移动、重命名和删除文件夹等操作。
DirectoryInfo的基本使用方法
获取文件夹信息
要获取一个文件夹的信息,需要先实例化一个DirectoryInfo对象,并将要操作的文件夹的路径作为参数传入。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents");
若要获取当前程序所在文件夹的信息,可以使用AppDomain.CurrentDomain.BaseDirectory属性获取路径。
DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
获取文件夹下的文件和子文件夹
要获取文件夹下的所有文件和子文件夹,可以使用GetDirectories
和GetFiles
方法。这两个方法都需要传入一个pattern参数,用于筛选需要获取的文件或文件夹,可以使用通配符进行模糊匹配。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents");
FileInfo[] files = di.GetFiles(); // 获取所有文件
DirectoryInfo[] subDirs = di.GetDirectories(); // 获取所有子文件夹
创建文件夹
要创建一个新的文件夹,可以使用CreateDirectory
方法。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents");
di.CreateDirectory("NewFolder"); // 在Documents文件夹下创建一个名为“NewFolder”的新文件夹
删除文件夹
要删除一个文件夹,可以使用Delete
方法。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents\\NewFolder");
di.Delete();
DirectoryInfo的其他用法
移动文件夹
要移动一个文件夹到另一个位置,可以使用MoveTo
方法。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents\\MyFolder");
di.MoveTo("C:\\Users\\UserName\\Desktop\\MyFolder");
判断文件夹是否存在
判断一个文件夹是否存在,可以使用Exists
方法。该方法返回一个bool类型的值,表示文件夹是否存在。
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents\\MyFolder");
if (di.Exists)
{
Console.WriteLine("文件夹存在。");
}
else
{
Console.WriteLine("文件夹不存在。");
}
示例
示例一:遍历文件夹下的所有子文件夹和文件
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents");
List<string> allFiles = new List<string>();
List<string> allDirs = new List<string>();
GetAllDirsAndFiles(di, allFiles, allDirs);
foreach (string fileName in allFiles)
{
Console.WriteLine(fileName);
}
foreach (string dirName in allDirs)
{
Console.WriteLine(dirName);
}
void GetAllDirsAndFiles(DirectoryInfo di, List<string> allFiles, List<string> allDirs)
{
// 获取该文件夹下所有文件
FileInfo[] files = di.GetFiles();
foreach (FileInfo file in files)
{
allFiles.Add(file.FullName);
}
// 获取该文件夹下所有子文件夹
DirectoryInfo[] subDirs = di.GetDirectories();
foreach (DirectoryInfo subDir in subDirs)
{
allDirs.Add(subDir.FullName);
// 递归获取子文件夹下的所有文件和子文件夹
GetAllDirsAndFiles(subDir, allFiles, allDirs);
}
}
示例二:为文件夹重命名
DirectoryInfo di = new DirectoryInfo("C:\\Users\\UserName\\Documents\\MyFolder");
di.MoveTo("C:\\Users\\UserName\\Documents\\NewFolder");
总结
DirectoryInfo类能够方便地获取、创建、移动、删除文件夹等操作,可以用于文件夹的管理和操作。在实际的开发中,我们可以根据需要使用DirectoryInfo类实现对文件夹的各种操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#DirectoryInfo类用法详解 - Python技术站