C#文件夹基本操作(判断文件夹是否存在、创建文件夹、移动文件夹、删除文件夹以及遍历文件夹中的文件)

        判断文件夹是否存在时,可以使用Directory类的Exists()方法或者DirectoryInfo类的Exists属性来实现。

一、判断文件夹是否存在

1.Directory类的Exists()方法

        Exists()方法用于确定给定路径是否引用磁盘上的现有目录,语法如下。

public static bool Exists (string path)
☑ path:要测试的路径。
☑ 返回值:如果path引用现有目录,则为true;否则为false。允许path参数指定相对或绝对路径信息。

        相对路径信息被解释为相对于当前的工作目录。 

//使用Directory类的Exists()方法判断C盘根目录下是否存在Test文件夹。
Directory.Exists("C:\\Test ");

2. DirectoryInfo类的Exists属性         

获取指示目录是否存在的值,语法如下。

public override bool Exists{get;}
属性值:如果目录存在,则为true;否则为false。 
//调用DirectoryInfo类中的Exists属性判断C盘根目录下是否存在Test文件夹
Directorylnfo dinfo =new Directorylnfo ("C:\\Test");
if (dinfo.Exists)
{}

二、创建文件夹

        创建文件夹可以使用Directory类的CreateDirectory()方法或者DirectoryInfo类的Create()方法来实现。

1. Directory类的CreateDirectory()方法

        CreateDirectory()方法为可重载方法,它有以下两种重载形式。

public static DirectoryInfo CreateDirectory (string path)
public static DirectoryInfo CreateDirectory (string path,DirectorySecurity directorySecurity)
☑ path:要创建的目录路径。 
☑ directorySecurity:要应用于此目录的访问控制。 
☑ 返回值:第一种重载形式的返回值为由path指定的DirectoryInfo;第二种重载形式的返回值为新创建的目录的DirectoryInfo对象。

        当path参数中的目录已经存在或者path的某些部分无效时,将发生异常。path参数指定目录路径,而不是文件路径

//调用Directory类的CreateDirectory()方法在C盘根目录下创建一个Test文件夹
Directory.CreateDirectory ("C:NTest ");

2.DirectoryInfo类的Create()方法

        Create()方法为可重载方法,它有以下两种重载形式。

public void Create ()
public void Create (DirectorySecurity directorySecurity)

        directorySecurity:主要应用于此目录的访问控制。

//调用DirectoryInfo类的Create()方法在C盘根目录下创建一个Test文件夹
Directorylnfo dinfo =new DirectoryInfo ("C:\\Test ");
dinfo.Create();

三、移动文件夹

        移动文件夹时,可以使用Directory类的Move()方法或者DirectoryInfo类的MoveTo()方法来实现。 

1. Directory类的Move()方法

        Move()方法用于将文件或目录及其内容移到新位置,语法如下。

public static void Move (string sourceDirName,string destDirName)
☑ sourceDirName:要移动的文件或目录的路径。 
☑ destDirName:指向sourceDirName的新位置的路径。
//调用Directory类的Move()方法将C盘根目录下的Test文件夹移动到C盘根目录下的“新建文件夹”文件夹中
Directory.Move("C:\\Test","C:\\新建文件夹NTest");

        使用Move()方法和MoveTo()方法移动文件夹时需要统一磁盘根目录,例如,C盘下的文件夹只能移动到C盘中的某个文件夹下。

2.DirectoryInfo类的MoveTo()方法

        MoveTo()方法用于将DirectoryInfo对象及其内容移动到新路径,语法如下。

public void MoveTo (string destDirName)
destDirName:要将此目录移动到的目标位置的名称和路径。目标不能是另一个具有相同名称的磁盘卷或目录,它可以是要将此目录作为子目录添加到其中的一个现有目录。
//调用DirectoryInfo类的MoveTo()方法将C盘根目录下的Test文件夹
//移动到C盘根目录下的“新建文件夹”文件夹中
Directorylnfo dinfo =new Directorylnfo ("C:\\Test ");
dinfo.MoveTo("C:\\新建文件夹\\Test");

四、删除文件夹

        删除文件夹可以使用Directory类的Delete()方法或者DirectoryInfo类的Delete()方法来实现。

1. Directory类的Delete()方法

        Delete()方法为可重载方法,它有以下两种重载形式。

public static void Delete(string path)
public static void Delete(string path,bool recursive)
☑ path:要移除的空目录/目录的名称。 
☑ recursive:若要移除path中的目录、子目录和文件,则为true;否则为false。
//调用Directory类的Delete()方法删除C盘根目录下的Test文件夹
Directory.Delete("C:\\Test");

2.DirectoryInfo类的Delete()方法

        Delete()方法是指永久删除文件,语法如下。

public override void Delete()
public void Delete(bool recursive)
recursive:若为true,则删除此目录、其子目录以及所有文件;否则为false。 

        第一种重载形式,如果DirectoryInfo为空,则删除它;第二种重载形式,删除DirectoryInfo对象,并指定是否要删除子目录和文件。

//调用DirectoryInfo类的Delete()方法删除C盘根目录下的Test文件夹
Directorylnfo dinfo =new Directorylnfo ("C:\\Test");
dinfo.Delete()

五、遍历文件夹   

        遍历文件夹时,可以分别使用DirectoryInfo类提供的 GetDirectories() 方法、 GetFiles() 方法和
GetFileSystemInfos() 方法。
一般遍历文件夹时,都使用GetFileSystemInfos()方法,因为GetDirectories()方法只遍历文件夹中的子文件夹,GetFiles()方法只遍历文件夹中的文件,而GetFileSystemInfos()方法遍历文件夹中的所有子文件夹及文件。

1.GetDirectories()方法

        GetDirectories()方法用来返回当前目录的子目录。该方法为可重载方法,它有以下3种重载形式。

public DirectoryInfo[]GetDirectories()
public Directorylnfo[]GetDirectories(string searchPattern)
public Directorylnfo[]GetDirectories(string searchPattern,SearchOption searchOption)
☑ searchPattern:搜索字符串,如用于搜索所有以单词System开头的目录的“System*”。
☑ searchOption:SearchOption枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有子目录。
☑ 返回值:第一种重载形式的返回值为DirectoryInfo对象的数组;第二种和第三种重载形式的返回值为与searchPattern匹配的DirectoryInfo类型的数组。

2.GetFiles()方法

        GetFiles()方法用来返回当前目录的文件列表。该方法为可重载方法,它有以下3种重载形式。

public Filelnfo[]GetFiles()
public Filelnfo[]GetFiles(string searchPattern)
public Filelnfo[]GetFiles(string searchPattern,SearchOption searchOption)
☑ searchPattern:搜索字符串(如“*.txt”)。
☑ searchOption:SearchOption枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有子目录。
☑ 返回值:FileInfo类型数组。

3.GetFileSystemInfos()方法

        GetFileSystemInfos()方法用来返回表示某个目录中所有文件和子目录的FileSystemInfo类型数组。该方法为可重载方法,它有以下两种重载形式。

public FileSystemInfo[]GetFileSystemInfos()
public FileSystemInfo[]GetFileSystemInfos(string searchPattern)
☑ searchPattern:搜索字符串。
☑ 返回值:第一种重载形式的返回值为FileSystemInfo项的数组;第二种重载形式的返回值为与搜索条件匹配的FileSystemInfo对象的数组。

六、示例

1.源码

2.生成效果 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cesium雷达扫描圈

import * as Cesium from "cesium"; let lastStage""; // 圆扩散 export function showCircleScan(viewer,lon, lat,color,maxRadius,height) {var cartographicCenter new Cesium.Cartographic(Cesium.Math.toRadians(lon), Cesium.Math.toRadians(lat),…

内衣洗衣机和手洗哪个干净?最好用的迷你洗衣机

随着大家工作的压力越来越大,下了班之后只能想躺平,在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起,而且这样子是非常不好的,用过的内衣裤长时间不清洗容易滋生细菌,而…

单片机学习3——数码管

数码管,根据内部结构,可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点,共计8段。因此,我们对它编程的时候,刚好是用一个字节。 数码管的显示方式: 1)静态显示; 2&…

QT网络协议知识体系(一)

//获取主机的名称和ip地址 //获取主机的所有信息

终于等到你!常用的组织架构图模板,高清图片一键导出

组织架构图是一种用来展示一个组织内部人员和职责关系的图表。通过组织架构图,我们可以清晰地了解一个组织的层级架构和各个部门之间的关系。在本文中,我们将向大家推荐8个常用的组织架构图模板,帮助你快速制作出专业的组织架构图。 1. 市场营…

【Android知识笔记】性能优化专题(二)

Android 内存泄漏原因总结 单例模式持有 Context 对象:由于单例的静态特性使得单例的生命周期和应用的生命周期一样长,如果一个对象已经不需要使用了,而单例对象还持有该对象的引用,那么这个对象将不能被正常回收,这就导致了内存泄漏。 非静态内部类创建的静态成员变量持有…

解决Linux Visual Studio Code显示字体有问题/Liunx下Visual Studio Code更换字体

01、具体问题 在Linux下VsCode控制台与代码区显示异常,如下图所示: 代码显示 终端显示 02、解决方案 下载字体 [rootlocalhost mhzzj]$ cd /usr/share/fonts # 进入目录 [rootlocalhost fonts]$ sudo yum install git # 下载字体 [rootlocalhost fo…

多种 React 组件通信方式实践

在React中,组件之间的通信是一个非常重要的话题。当我们构建复杂的应用程序时,经常需要不同的组件之间共享数据或者进行相互协作。React提供了几种方式来实现跨组件通信,下面我将详细其中几种通信方式,并提供实际的代码示例。 使…

React入门使用 (官方文档向 Part1)

文章目录 React组件:万物皆组件 JSX: 将标签引入 JavaScriptJSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 ~~所有~~ 大部分属性命名!高级提示:使用 JSX 转化器 在 JSX 中通过大括号使用 JavaScript使用引号传递字符串使用大括号&…

招投标信息可以用CRM系统来查看吗?

对于B2B企业来说获客难、获客成本高是共识。做大客户的企业通过招投标获取商机是一个重要获客途径,然而传统方式管理招投标信息问题很多,例如资料丢失、手工录入出错、信息分散、信息查找费时费力。为了解决这些难题小编推荐CRM系统,CRM系统需…

Java基础之集合类

Java基础之集合类 一、集合的框架1.1、集合概述1.2、集合与数组区别1.3、数组的缺点:1.4、常用集合分类1.5、Collection常用方法 二、List集合2.1、ArrayList2.2、LinkedList2.3、Vector2.4、区别 三、Set集合3.1、HashSet集合3.2、LinkedHashSet集合3.3、TreeSet集…

Qt 网络通信

获取本机网络信息 &#xff08;1&#xff09;在 .pro 文件中加入 QT network&#xff08;2&#xff09; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QLabel> #include <QLineEdit> #include <QPu…

C#中openFileDialog控件的使用方法

目录 一、OpenFileDialog基本属性 二、使用 OpenFile 从筛选的选择中打开文件 1.示例源码 2.生成效果 3. 其它示例 三、使用 StreamReader 以流的形式读取文件 1.示例源码 2.生成效果 四、一种新颖的Windows窗体应用文件设计方法 在C#中&#xff0c;OpenFileDialog控件…

vue3+tsx的使用

<template><div><xiaoman on-click"getItem" name"似懂非懂"></xiaoman></div> </template><script setup langts>import xiaoman from "./App"const getItem(item:any)>{console.log(item,it…

redis引发的一次生产事故,内存爆满

redis引发的一次生产事故 问题描述&#xff1a; 发版后回归测试&#xff0c;不定时出现token失效&#xff0c;导致自动退出到登录界面。如果操作的人员较多&#xff0c;token失效的就比较快&#xff0c;操作的人员较少token失效的相对较慢。 问题复现&#xff1a; 同一账号…

【LeeCode】*904.水果成篮

你正在探访一家农场&#xff0c;农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示&#xff0c;其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而&#xff0c;农场的主人设定了一些严格的规矩&#xff0c;你必须按照要求采摘水果&…

《C++PrimePlus》第10章 对象和类

10.1 过程性编程和面向对象编程 10.2 抽象和类 10.3 类的构造函数和析构函数 类的定义和使用&#xff08;买卖股票&#xff09; 头文件stock10.h #ifndef __STOCK00__H__ #define __STOCK00__H__#include <string>class Stock { // pravate的内容只能通过public访问 p…

简易地铁自动机售票系统实现(C++)

该程序具有以下功能 (1) 一个地铁路线类 Router&#xff0c;包含路线编号&#xff0c;途中的各个站点。可以新增、删除、查询路线&#xff0c;可以根据线路名称&#xff0c;显示线路图片。 (2) 一个地图类 Map&#xff0c;可以显示所有可以乘坐的地铁站名&#xff0c;以及线路…

leetcode 不同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;…

MybatisBatchUtils功能介绍

MybatisBatchUtils 是一个 MyBatis 框架的工具类&#xff0c;主要用于简化 MyBatis 中批量操作的代码编写。该工具类封装了 MyBatis 中的批量操作方法&#xff0c;可以方便地进行批量插入、更新和删除等操作。 一般来说&#xff0c;使用 MyBatis 进行批量操作需要先设置 JDBC 驱…