C# DirectoryInfo类的用法

2023-11-11 10:44

本文主要是介绍C# DirectoryInfo类的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在C#中,DirectoryInfo类是System.IO命名空间中的一个类,用于操作文件夹(目录)。通过DirectoryInfo类,我们可以方便地创建、删除、移动和枚举文件夹。本文将详细介绍DirectoryInfo类的常用方法和属性,并提供相应的代码示例。

目录

    • 创建DirectoryInfo实例
    • 常用方法
      • Create()
      • Delete()
      • MoveTo(string destDirName)
      • GetDirectories()
      • GetFiles()
    • 常用属性
      • FullName
      • Name
      • Parent
      • Exists
    • 完整示例
    • 总结
    • 参考资料


在这里插入图片描述

创建DirectoryInfo实例

要使用DirectoryInfo类,首先需要创建一个DirectoryInfo实例。可以通过以下两种方式来创建:

  1. 使用构造函数创建
string path = "C:\\myFolder";
DirectoryInfo di = new DirectoryInfo(path);

通过指定文件夹路径来创建一个DirectoryInfo对象。

  1. 使用静态方法获取
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

这篇关于C# DirectoryInfo类的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389491

相关文章

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代