DirectoryInfo类演示

整理好麻烦.
[cce_cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace DirectoryInfoDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Magenta;//设置输出颜色
            DirectoryInfo dirInfo = new DirectoryInfo(@"D:123123");
            try
            {
                //==========================属性=========================
                DirectoryInfo dirParent = dirInfo.Parent;//获取指定子目录的父目录DirectoryInfo对象
                DirectoryInfo dirRoot = dirInfo.Root;//获取路径的跟DirectoryInfo对象
                Console.WriteLine(dirInfo.Name);//返回目录的名称
                DateTime dirDate = dirInfo.CreationTime;//当前 FileSystemInfo 对象的创建日期和时间
                Console.WriteLine(dirInfo.Exists);//获取目录是否存在,如果目录存在,则为 true,否则为 false
                Console.WriteLine(dirInfo.FullName);//获取目录的完整路径
                //==========================方法=========================
                Console.WriteLine("Create创建文件夹");
                dirInfo.Create();//创建文件夹
                Console.ReadKey();

                Console.WriteLine("GetFiles获取该目录下的文件返回FileInfo数组");
                FileInfo[] file = dirInfo.GetFiles();
                foreach (var item in file)
                {
                    Console.WriteLine(item.Name);//输出数组中,所有文件的名字
                }
                Console.ReadKey();

                Console.WriteLine("GetDirectories获取该目录下的所有文件夹,返回DirectoryInfo数组");
                DirectoryInfo[] dir = dirInfo.GetDirectories();
                foreach (var item in dir)
                {
                    Console.WriteLine(item.Name);//输出数组中,所有文件的名字
                }
                Console.ReadKey();

                Console.WriteLine("CreateSubdirectory创建子目录");
                dirInfo.CreateSubdirectory("a");//创建一个名为a的子目录
                Console.ReadKey();

                Console.WriteLine("MoveTo将该文件夹移动到新位置");
                dirInfo.MoveTo(@"D:1");
                Console.ReadKey();

                Console.WriteLine("Delete删除文件夹");
                //dirInfo.Delete();//文件夹不存在会引发异常
                Console.ReadKey();
            }
            catch (DirectoryNotFoundException)//目录不存在时引发的异常
            {
                Console.WriteLine("文件或文件夹不存在,程序终止!");
                Console.ReadKey();
            }
            catch (IOException e)//进行IO操作引发的异常基类
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception ex)//所有异常的基类,通过这个基类,可以捕获上面捕获不到的异常
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadKey();
        }
    }
}

[/cce_cs]
代码下载:[download id="14"]
另外,可以通过Attributes属性来获取该文件夹的属性

[cce_cs]
DirectoryInfo dirInfo = new DirectoryInfo(@"C:Boot");
if ((dirInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
    Console.WriteLine("该目录为隐藏");
}
if ((dirInfo.Attributes & FileAttributes.System) == FileAttributes.System)
{
    Console.WriteLine("该目录为系统文件夹");
}
[/cce_cs]
另外可以通过直接给Attributes赋值来设置文件夹的属性
[cce_cs]
dirInfo.Attributes = FileAttributes.Normal;//这个表示正常,没有其他属性
[/cce_cs]
另外附上该枚举的成员
成员名称 说明
ReadOnly 文件为只读。
Hidden 文件是隐藏的,因此没有包括在普通的目录列表中。
System 文件为系统文件。文件是操作系统的一部分或由操作系统以独占方式使用。
Directory 文件为一个目录。
Archive 文件的存档状态。应用程序使用此属性为文件加上备份或移除标记。
Device 保留供将来使用。
Normal 文件正常,没有设置其他的属性。此属性仅在单独使用时有效。
Temporary 文件是临时文件。文件系统试图将所有数据保留在内存中以便更快地访问,而不是将数据刷新回大容量存储器中。不再需要临时文件时,应用程序会立即将其删除。
SparseFile 文件为稀疏文件。稀疏文件一般是数据通常为零的大文件。
ReparsePoint 文件包含一个重新分析点,它是一个与文件或目录关联的用户定义的数据块。
Compressed 文件已压缩。
Offline 文件已脱机。文件数据不能立即供使用。
NotContentIndexed 操作系统的内容索引服务不会创建此文件的索引。
Encrypted 该文件或目录是加密的。对于文件来说,表示文件中的所有数据都是加密的。对于目录来说,表示新创建的文件和目录在默认情况下是加密的。

1 Reply to “DirectoryInfo类演示”

  1. Pingback: C#文件操作 | 笨笨.Blog

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据