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#中的位操作小结

    让我来给您详细讲解“C#中的位操作小结”的完整攻略。 一、概述 C#中的位操作是指可以直接打开和操纵整数的各个位的操作,它是一种非常高效和灵活的算法。在C#中,位操作可以方便地完成各种数据的处理和转换,如颜色值、文件属性、位图、掩码等等。 二、位操作运算符 C#中常用的位操作运算符有以下几种: & 按位与:将两个操作数对应的位进行与操作,结果为1的位…

    C# 2023年6月7日
    00
  • C#类的创建与初始化实例解析

    C# 是一种面向对象的编程语言,它的类是其最重要的组成单元。在 C# 中,类可以被定义为模板或蓝图,用来描述一个对象需要包含哪些属性和行为。本文将介绍如何创建和初始化 C# 类的实例,以及解析这些实例的一些常见方法。 创建 C# 类 要创建一个 C# 类,需要遵循以下步骤: 使用 class 关键字定义类的名称,如: public class MyClass…

    C# 2023年5月31日
    00
  • II7添加应用程序测试时 无法验证对路径(c:\test\WcfService)的访问

    当在IIS 7上添加应用程序时,有时会遇到“无法验证对路径(c:\test\WcfService)的访问”的错误。这通常是由于IIS用户没有足够的权限来访问该路径。下面是解决此问题的完整攻略,包含两个示例。 1. 确认应用程序池的身份验证 首先,我们需要确认应用程序池的身份验证设置是否正确。在IIS管理器中,选择应用程序池,右键单击并选择“高级设置”。在“进…

    C# 2023年5月15日
    00
  • C#实现分治算法求解股票问题

    C#实现分治算法求解股票问题攻略 简介 本文将介绍如何使用C#语言实现分治算法求解股票问题。 股票问题是一道经典的算法问题,在股票市场中,假设你只能进行一次买卖(即买卖一支股票),请你设计一个算法,找出最大的收益。其中股票当天的价格列表作为输入。例如,给定价格为[7,1,5,3,6,4]的股票价格列表,则通过一次买卖可以获得的最大收益为5。 分治算法是一种将…

    C# 2023年6月8日
    00
  • C# TextReader.Close – 关闭文本读取器

    TextReader.Close 方法是C#中System.IO.TextReader类的一个实例方法,用于关闭流并释放与之关联的所有系统资源。 使用方法: 首先通过实例化一个TextReader对象,打开一个文本流 对打开的文本流进行读取操作 使用TextReader.Close()方法关闭文件流和内存流 完整代码示例1: using System; us…

    C# 2023年4月19日
    00
  • C#实现生成mac地址与IP地址注册码的两种方法

    C#实现生成mac地址与IP地址注册码的两种方法 概述 在软件开发中,为了保护商业机密或者对软件的使用进行限制,我们经常需要生成一些注册码,然后用户需要通过这些注册码来激活软件。而在生成注册码的过程中,我们常常需要用到设备的mac地址或者IP地址。话不多说,本篇文章就来详细讲解如何使用C#实现生成mac地址与IP地址注册码的两种方法。 方法一:使用Syste…

    C# 2023年5月31日
    00
  • .net的命名空间类库的简单介绍

    下面我将提供“.net的命名空间类库的简单介绍”的完整攻略。 什么是命名空间 在.Net中,命名空间是用来组织和管理代码的一种机制。它可以让我们把相关的类、结构体、枚举等类型放到一个命名空间下,提高代码的可读性和可管理性。 命名空间的格式 .Net的命名空间是由一系列名称组成的,每个名称之间用点(.)分隔,例如: System.IO.File 这个命名空间表…

    C# 2023年5月31日
    00
  • C# 大小写转换(金额)实例代码

    下面我将详细讲解“C# 大小写转换(金额)实例代码”的完整攻略,希望对您有所帮助。 1. 需求分析 这段代码的主要作用是将数字金额转换为中文大写金额。我们通常在财务方面的业务操作中经常会涉及到金额的输入、输出和转换,而中文大写金额是一种比较规范的书写方式,因此这段代码具有广泛的应用价值。 2. 基本思路 具体实现的基本思路如下: 首先将数字金额按照小数点进行…

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