C#DirectoryInfo类用法详解

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);

获取文件夹下的文件和子文件夹

要获取文件夹下的所有文件和子文件夹,可以使用GetDirectoriesGetFiles方法。这两个方法都需要传入一个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技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#运用FileInfo类实现拷贝文件的方法

    C#中可以使用FileInfo类实现拷贝文件的方法,下面介绍具体步骤和示例说明。 步骤 创建FileInfo对象,指定源文件的路径和文件名。 调用FileInfo类的CopyTo方法,将源文件复制到目标位置。 示例说明 示例一 下面的示例演示了如何使用FileInfo类实现拷贝文件的方法: using System.IO; class Program { s…

    C# 2023年6月1日
    00
  • 在.NET中扫描局域网服务的实现方法

    下面是关于“在.NET中扫描局域网服务的实现方法”的完整攻略,包含两个示例。 1. 局域网服务扫描简介 在局域网中,我们可能需要扫描网络中的服务,以便找到可用的服务。在.NET中,我们可以使用Socket类和UDP协议来实现局域网服务扫描。以下是.NET中局域网服务扫描的详细介绍。 2. 局域网服务扫描全攻略 以下是使用.NET中Socket类和UDP协议实…

    C# 2023年5月15日
    00
  • ASP.net(c#)生成条形码 code39条码生成方法

    下面是“ASP.net(c#)生成条形码 code39条码生成方法”的完整攻略。 什么是Code39条形码 Code39是一种常用的线性条形码,由数字、字母、还有一些特殊字符组成。Code39条形码可以表示0到9的数字、26个大写字母、7个特殊字符和一个空格符号。 生成Code39条形码的步骤 ASP.NET生成Code39条形码的步骤大致如下: 安装Cod…

    C# 2023年5月31日
    00
  • SuperSocket封装成C#类库的步骤

    将SuperSocket封装成C#类库的步骤如下: 第一步,首先需要创建一个新的C#类库项目。打开Visual Studio,选择“新建项目”,选择“类库”类型并命名项目。 第二步,安装SuperSocket的NuGet包。在“解决方案资源管理器”中,右键点击“引用”文件夹,选择“管理NuGet程序包”。在搜索栏中输入“SuperSocket”,安装最新版本…

    C# 2023年6月1日
    00
  • C#11新特性预览及使用介绍

    C# 11新特性预览及使用介绍 介绍 C# 11新特性加入了一些新的语言特性,使得C#语言更具表达力和灵活性。在本文中,我们将介绍C# 11的一些新功能并演示如何使用它们。 新特性 1. 本地函数的支持 C# 10已经支持了本地函数的语法,但在C# 11中,我们可以在本地函数中使用“拓展方法”。具体而言,我们可以在本地函数中使用类的拓展方法。 例如,我们需要…

    C# 2023年5月14日
    00
  • 浅谈C#单例模式的实现和性能对比

    下面是详细讲解“浅谈C#单例模式的实现和性能对比”的完整攻略。 什么是单例模式? 单例模式是一种创建型设计模式,在整个应用程序运行期间只有一个实例存在,使用该实例来控制其他对象的访问权限。常用于需要严格控制全局资源的情况,例如数据库连接池、线程池和缓存等。 单例模式的实现方法 C#中单例模式的实现方法主要有以下两种: 1. 饿汉式单例模式 饿汉式单例模式是指…

    C# 2023年6月7日
    00
  • C#任务并行Parellel.For和Parallel.ForEach

    我们来详细讲解一下C#中任务并行的两个方法Parallel.For和Parallel.ForEach的使用攻略。 Parallel.For 用法 Parallel.For是C#中的一个并行任务处理方法,可以并行处理一个区间内的多个任务。其语法格式如下: Parallel.For(startIndex, endIndex, index => { // 处…

    C# 2023年6月6日
    00
  • ASP.NET Core扩展库之Http日志的使用详解

    ASP.NET Core扩展库之Http日志的使用详解 在ASP.NET Core中,Http日志是一种非常有用的功能,它可以帮助您更好地了解应用程序的运行情况。在本攻略中,我们将详细讲解ASP.NET Core扩展库之Http日志的使用,并提供两个示例说明。 步骤一:安装Microsoft.Extensions.Logging和Microsoft.AspN…

    C# 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部