C#Directory类,可进行文件夹相关操作

一、定义

Directory类引用的命名空间是System.IO,它的定义是:

System.Runtime.InteropServices.ComVisible(true)]
public static class Directory

用于通过目录和子目录进行创建、移动和枚举的静态方法,通俗点讲就是可以进行文件夹的创建、移动、删除等操作的一个类。

二、属性与方法及应用

1、创建目录(文件夹):CreateDirectory 

声明如下:public static DirectoryInfo CreateDirectory(string path);

使用方法:

//如下通过该方法可以在D盘中新建一个myDirectoty文件夹
Directory.CreateDirectory(@"D:\myDirectoty");

2、移动目录:Directory.Move

 声明如下:public static void Move(string sourceDirName,string destDirName);

//把目录D:\A移动到D:\B目录
File.Move(@"D:\A",@"D:\B");

3、删除:Delete

声明如下:

 public static void Delete(string path,bool recursive);

参数一为删除目录路径,参数二作为是否删除非空目录的判断,true,则删除整个目录,false,则仅目录不为空方可删除。

4、设置目录属性:DirectoryInfo.Atttributes

目录属性可以设置只读、隐藏

DirectoryInfo DirInfo = new DirectoryInfo(@"D:\A");

DirInfo.Atttributes = FileAttributes.ReadOnly|FileAttributes.Hidden;

5、获取当前目录下的所有文件:Directory.GetFiles

有三个方法:

(1)GetFiles(String) :返回指定目录中文件的名称(包括其路径)。

声明如下:public static string[] GetFiles (string path);

其中参数为:要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

(2)GetFiles(String, String):返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径)。使用该方法可以获取多种格式类型的文件

声明如下:public static string[] GetFiles (string path, string searchPattern);

其中参数一为:要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

参数二为:要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。

了解下通配符:

通配符说明符

匹配
* 该位置中的零个或多个字符。
该位置正好是一个字符

例:
①“*e”搜索 path 中所有以字母“e”结尾的名称
②“s*”搜索 path 中所有以字母“s”开头的名称

通配符的行为与其长度有一定的关系,扩展名恰好是三个字符时的 searchPattern 匹配行为与扩展名多于三个字符时不同

①恰好为三个字符的 searchPattern 返回扩展名为三个或三个以上字符的文件。

“*.abc”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。

②一个字符、两个字符或三个以上字符的 searchPattern 只返回扩展名恰好等于该长度的文件。

“*.a”只返回扩展名为 .a的文件。

“*.ab”只返回扩展名为 .ab的文件。

“*.abcd”只返回扩展名为 .abcd 的文件。

获取多个类型格式的文件:
//法一
var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".png") || s.EndsWith(".mp4"));

//法二
Directory.GetFiles()
Directory.GetFiles("c:\","(*.png|*.mp4)"); 

(3)GetFiles(String, String, SearchOption):返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径),使用某个值确定是否要搜索子目录。

其中

6、获取当前目录下的所有子目录:Directory.GetDirectories

声明如下:public static string[] GetDirectories(string path);

参数为目录路径,返回子目录数组

7、判断目录是否存在:Directory.Exist

声明如下:

public static bool Exists

 (

    string path;

 );

返回bool值。

注意:在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。

猜你喜欢

转载自blog.csdn.net/mr_five55/article/details/129826681