C#从入门到精通(20)—C#目录类Directory用法总结

embedded/2024/9/24 11:56:12/

在这里插入图片描述

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站

前言:

大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#程序的过程中经常需要对文件夹进行处理,本文就来详细介绍。

1、创建目录

  string path = "d:\\test\\dir";Directory.CreateDirectory(path); //创建一个新的目录。如果目录的上级目录不存在,则也会创建上级目录;如果目录已经存在则啥也不干

2、删除目录

删除目录时,这里第二个参数指示是否删除目录的子目录,如果该参数值为true,则删除子目录,否组仅当目录为空时才删除目录。

 bool recursive = true;//是否递归处理Directory.Delete(path, recursive);

3、判断目录是否存在

  if (Directory.Exists(path))//确定目录是否存在。{Console.WriteLine($"目录已存在");}else{Console.WriteLine($"目录不存在");}

4、获取子目录名称

string[] subDirectories = Directory.GetDirectories(path);// 返回指定目录中的子目录名称的数组

5、获取目录下所有文件名称

  string[] subFiles = Directory.GetFiles(path); //返回指定目录中的文件名称的数组

6、移动目录

 string newPath = "d:\\test2";Directory.Move(path, newPath); //将指定的目录及其所有子目录和文件移动到新位置。

7、返回指定目录的创建时间

DateTime datetimeCreate = Directory.GetCreationTime(path);// 返回指定目录的创建时间。

8、返回上次访问指定目录的时间

实际测试发现当我们新建文件、重命名文件、修改文件内容、删除文件内容时会更新这个属性

DateTime datetimeAccess = Directory.GetLastAccessTime(path);

9、返回上次写入指定目录的时间

实际测试发现当我们新建文件、重命名文件、修改文件内容、删除文件内容时会更新这个属性

DateTime datetimeWrite = Directory.GetLastWriteTime(path); 

10、返回指定路径的父目录信息

所谓父目录也就是上层目录的信息。

DirectoryInfo directoryInfo = Directory.GetParent(path);

11、查找子目录名称的前两个名称是“板号”,第三个名称任意字符

就比如dir文件夹下的“板号_”这个文件夹,由于板号后面跟了一个字符"",这就符合要求,所以可以被找到,这里的?代表的就是任意字符。
D:\Test\dir\板号

   string[] dirs = Directory.EnumerateDirectories(path, "板号?").ToArray();

12、查找子目录名称的前两个名称是“板号”,后面的名称任意长度和名字

就比如dir文件夹下的“板号_”、“板号123”这两个文件夹都是以“板号”作为开头,所以满足条件,这里的*代表的就是任意长度任意名字的字符。
D:\Test\dir\板号_
D:\Test\dir\板号123

 string[] dirs2 = Directory.EnumerateDirectories(path, "板号*").ToArray();

13、查找文件名的前两个名称是“板号”,第三个名称任意

上面的介绍是查找满足特定条件的目录,这里的EnumerateFiles是查找满足特定条件的文件名,这里指的是文件名以“板号开头”第三个字符为任意字符的文件

 string[] filess = Directory.EnumerateFiles(path, "板号?.txt").ToArray();

14、查找文件名的前两个名称是“板号”,后面的名称任意长度和名字

上面的介绍是查找满足特定条件的目录,这里的EnumerateFiles是查找满足特定条件的文件名,这里指的是文件名以“板号开头”后面的字符为任意字符的文件

 string[] files2 = Directory.EnumerateFiles(path, "板号*").ToArray();

作者介绍

马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在CSDN已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!

年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》


http://www.ppmy.cn/embedded/102747.html

相关文章

豆包 API 调用示例代码详解-Python版

文章目录 豆包 API 调用示例代码详解-Python版一、事前准备二、所需 Python 包三、代码详解五、源码下载四、总结豆包官方API文档 豆包 API 调用示例代码详解-Python版 在本文中,我们将详细介绍如何使用 Python 调用豆包 API,并提供相关的事前准备和代码…

[C++]深入理解C++中的泛型编程、函数模板与类模板

C 以其强大的模板功能和泛型编程(Generic Programming)特性而闻名。模板不仅提高了代码的重用性,还大大增强了编程的灵活性。本文将详细介绍C中的泛型编程,以及与之密切相关的函数模板和类模板。 1. 泛型编程概述 泛型编程是一种…

AMBA协议中的AXI-Stream:协议信号与设计实践

在高性能嵌入式系统设计中,AMBA(Advanced Microcontroller Bus Architecture)协议扮演着重要角色。其中,AXI-Stream协议是AMBA 4.x规范的一部分,专为高吞吐量数据传输而设计,广泛应用于视频处理、音频处理、…

【Spring Boot进阶】掌握Spring Boot框架核心注解:从入门到精通(实战指南)

文章目录 Spring Boot 注解大全:深入理解与实践引言第一部分:基础知识1. Spring Boot 和 Java 注解简介2. Spring Boot 项目搭建 第二部分:核心注解详解3. SpringBootApplication4. Component, Service, Repository, Controller, RestControl…

黑马JavaWeb开发笔记05——JavaScript介绍、基本语法、函数、对象(Array, String, json, BOM, DOM)、事件监听

文章目录 前言一、JavaScript介绍和引入方式1. 介绍2. 引入方式3. VScode引入演示 二、JavaScript基础语法1. 书写语法2. 变量2.1 var2.2 let2.3 const 3. 数据类型、运算符、流程控制语句3.1 数据类型3.2 运算符3.3 流程控制语句 三、JavaScript函数1. 第一种定义方式2. 第二种…

MySQL 数据库自动分区

MySQL 数据库自动分区 MySQL自动分区(Automatic Partitioning)是指数据库管理系统自动将数据分布到预先定义好的分区表结构中,而无需显式地对每个插入操作进行分区。它通常基于特定的策略,如范围、列表、哈希或螺旋分区&#xff…

Android Compose 下拉选择框 ExposedDropdownMenu下拉选择

/*** author 创建人&#xff1a;蒙石瑞* date 创建时间&#xff1a;2024/8/23 10:57* Description 创建内容&#xff1a;下拉选择框*/ OptIn(ExperimentalMaterial3Api::class) Composable fun CustomExposedDropdownMenu(options: List<out DropdownMenuDes>,l…

Marked: 一款高效、轻量级且全功能的Markdown解析器

在Web开发中&#xff0c;Markdown已成为一种流行的轻量级标记语言&#xff0c;它允许人们使用简单的文本格式编写文档&#xff0c;并可轻松转换为HTML。为了满足这一需求&#xff0c;出现了许多Markdown解析器&#xff0c;而Marked无疑是其中的佼佼者。Marked以其速度、轻量级和…