C# Directoryinfo类:文件夹操作

C# Directoryinfo类:文件夹操作

在 C# 语言中 Directory 类和 Directoryinfo 类都是对文件夹进行操作的。DirectoryInfo 类能创建该类的实例,通过类的实例访问类成员。DirectoryInfo 类提供了一个构造方法,语法形式如下。

DirectoryInfo(string path)

例如创建路径为 D 盘中的 test 文件夹的实例,代码如下。

DirectoryInfo directoryInfo = 
new DirectoryInfo("D:\\test");

DirectoryInfo 类中常用的属性和方法如下图所示。

在这里插入图片描述
例子1:

using System;
using System.IO;


namespace MySpcae
{
    
    

    class Program
    {
    
    

        static void Main(string[] args)
        {
    
    
            //创建路径为E盘中的test文件夹
            DirectoryInfo directoryInfo = new DirectoryInfo("E:\\test");
            //创建目录
            directoryInfo.Create();

            //在指定的目录上创建一个或多个子目录
            directoryInfo.CreateSubdirectory("test01");
            directoryInfo.CreateSubdirectory("test02");


            Console.ReadKey();

        }
    }


}


运行后会得到一个文件夹test,和其下的test01和test02。
在这里插入图片描述
例子2:

using System;
using System.IO;
using System.Collections.Generic;


namespace MySpace
{
    
    
    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    
            //创建了一个路径为E盘下的test文件夹的实例对象
            DirectoryInfo directoryInfo = new DirectoryInfo("E:\\test");

            //返回当前目录中目录信息的可枚举集合
            IEnumerable<DirectoryInfo> dir = directoryInfo.EnumerateDirectories();
            //遍历集合
            //var在方法范围内声明的变量可以具有隐式“类型”
            foreach (var v in dir)
            {
    
    
                Console.WriteLine(v.Name);
            }
            Console.ReadKey();
        }
    }

}

运行结果:
在这里插入图片描述
EnumerateDirectories 方法只用于检索文件夹,不能检索文件。

例子3:
我在test01的test02中分别创建一个word文档,然后运行下面的代码


using System;
using System.IO;

namespace MySpace
{
    
    


    class Program
    {
    
    
        static void Main(string[] args)
        {
    
    

            DirectoryInfo directoryInfo = new DirectoryInfo(@"E:\test");
            //指定是否删除子目录和文件,
            //如果 recursive 参数的值为 True,则删除,否则不删除
            directoryInfo.Delete(true);
        }

    }
}

运行后E盘下的test文件夹被删除掉了。
小结:
需要注意的是,如果要删除一个非空文件夹,则要使用 Delete(True) 方法将文件夹中的文件一并删除,否则会岀现“文件夹不为空”的异常。

猜你喜欢

转载自blog.csdn.net/weixin_50188452/article/details/115022035