DirectoryInfo类和Directory类之间的关系与FileInfo类和File类之间的关系十分类似。下面介绍一下DirectoryInfo类的常用属性。

DirectoryInfo类的常用属性及说明如表所示。

表  DirectoryInfo类的常用属性及说明

属性 说明
Attributes  设置当前 FileSystemInfo 的 FileAttributes
CreationTime  设置当前 FileSystemInfo 对象的创建时间
Exists 获取指示目录是否存在的值
FullName  获取目录或文件的完整目录
Parent 获取指定子目录的父目录
Name 获取此 DirectoryInfo 实例的名称

下面对DirectoryInfo类中比较重要的属性进行详细介绍。

(1)CreationTime 属性

设置当前 FileSystemInfo 对象的创建时间。

语法:

public DateTime CreationTime { get; set; }

属性值:当前 FileSystemInfo 对象的创建日期和时间。

例如,获得F:\test\0000\目录下文件夹AA的创建日期和时间,首先将DirectoryInfo实例化,然后通过CreationTime属性得到此文件夹的创建日期和时间。代码如下所示:

   string Paths = @"F:\test\0000\AA";

        DirectoryInfo di = new DirectoryInfo(Paths);// 将DirectoryInfo实例化

        string name = di.CreationTime.ToString();//通过CreationTime属性得到此文件夹的创建日期和时间

        Label1.Text = "文件夹创建时间:"+name;

(2)Exists属性

判断指定的文件夹是否存在。

语法:

public override bool Exists { get; }

属性值:如果目录存在,则为 True;否则为 False。

例如,判断F:\test\0000\目录下是否存在名为ls的文件夹,首先要将DirectoryInfo实例化,然后通过Exists属性判断此文件夹是否存在,如果文件夹存在,返回值为True,否则为False。代码如下所示:

 string Paths = @"F:\test\0000\AA";

 DirectoryInfo di = new DirectoryInfo(Paths);

 if (di.Exists)

         {

            Page.RegisterStartupScript("","<script>alert('该文件夹已经存在')</script>");

         }

DirectoryInfo类的常用方法及说明如表所示。

表    DirectoryInfo类的常用方法及说明

方法
 
说明
 
Create 创建目录
CreateObjRef   创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息
CreateSubdirectory  在指定路径中创建一个或多个子目录。指定路径可以是相对于 DirectoryInfo 类的此实例的路径 
Delete  从路径中删除 DirectoryInfo 及其内容
Equals 确定两个 Object 实例是否相等
GetAccessControl  获取当前目录的访问控制列表 (ACL) 项 
GetDirectories  返回当前目录的子目录
GetFiles  返回当前目录的文件列表
GetFileSystemInfos 检索表示当前目录的文件和子目录的强类型 FileSystemInfo 对象的数组
GetHashCode  用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用 
GetLifetimeService  检索控制此实例的生存期策略的当前生存期服务对象 
GetObjectData 设置带有文件名和附加异常信息的 SerializationInfo 对象 
GetType   获取当前实例的 Type 
InitializeLifetimeService   获取控制此实例的生存期策略的生存期服务对象
MoveTo  将 DirectoryInfo 实例及其内容移动到新路径
ReferenceEquals   确定指定的 Object 实例是否是相同的实例
Refresh   刷新对象的状态 
SetAccessControl  将 DirectorySecurity 对象所描述的访问控制列表 (ACL) 项应用于当前 DirectoryInfo 对象所描述的目录
ToString 返回用户所传递的原始路径

下面对DirectoryInfo类中比较重要的方法进行详细介绍。

(1)Create方法

此方法可以方便的创建目录。

语法:

public void Create ()

例如,在D盘下创建名为AA的文件夹,首先要将DirectoryInfo类实例化,然后判断是否存在同名的文件夹,如果不存在,则使用Create方法创建目录。代码如下所示:

   string path = "D:\\AA";

         DirectoryInfo di = new DirectoryInfo(path);

         if (!di.Exists)

         {

             di.Create();

         }

         else

         {

             Response.Write("此文件夹已经存在!");

         }
  

(2)GetFileSystemInfos方法

返回表示某个目录中所有文件和子目录的强类型FileSystemInfo项的数组。

语法:

public FileSystemInfo[] GetFileSystemInfos ()

返回值:

强类型 FileSystemInfo 项的数组。

(3)MoveTo方法

将指定的内容移动到新路径。

语法:

public void MoveTo (string destDirName)

参数:

destDirName :要将此目录移动到的目标位置的名称和路径,目标不能是另一个具有相同名称的磁盘卷或目录。

(4)Delete方法

删除指定的文件夹。

语法:

public override void Delete ()

例如,删除D盘下名为AA的文件夹,首先将DirectoryInfo类实例化,然后判断是否存在此文件夹,如果存在则使用Delete方法删除此文件夹。

     string path = "D:\\AA";

         DirectoryInfo di = new DirectoryInfo(path);

         if (di.Exists)

         {

             di. Delete();

         }

         else

         {

             Response.Write("不存在此文件夹!");

         }
 Directory 与 DirectoryInfo 这两个能够实现大多数相同的功能。

区别可分为两点:
一、静态与实例调用 前者必须被实例化后才能使用,而后者则只提 供了静态的方法。如果多次使用某个对象一般使用前者; 如果仅执行某一个操作则使用后者提供的静态方法效率更 高一些。
Directory 可直接调用,不需要实例化,比如 Directory.Delete(path)。一般比DirectoryInfo的函数要多出一个path参数。 DirectoryInfo 必须实例化才能调用其方法,在频繁地操作某一目录时,这种方式比较方便。
二、功能多少 DirectoryInfo 的功能要稍微比 Directory 多些、强些,比如 DirectoryInfo 的 GetFiles 返回的是 FileInfo[],而 Directory.GetFiles 返回的是 string[]。

c# DirectoryInfo类 详解的更多相关文章

  1. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  2. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  3. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  4. Java String类详解

    Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...

  5. QAction类详解:

    先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...

  6. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表

    一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...

  7. Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解

    1.修改struts2常量配置(3种) 第一种 在str/struts.xml中添加constant标签 <struts> <!-- 如果使用使用动态方法调用和include冲突 - ...

  8. C# 内置 DateTime类详解

    C# 内置 DateTime类详解 摘抄自微软官方文档,用来方便自己查阅:网址:https://msdn.microsoft.com/zh-cn/library/system.datetime(v=v ...

  9. Android游戏开发之旅 View类详解

    Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...

随机推荐

  1. [改善Java代码]由点及面,一叶知秋----集合大家族

    Java中的集合类实在是太丰富了,有常用的ArrayList.HashMap,也有不常用的Stack. Queue,有线程安全的Vector.HashTable,也有线程不安全的LinkedList. ...

  2. 24小时学通Linux内核之有关Linux文件系统实现的问题

    有时间睡懒觉了,却还是五点多醒了,不过一直躺倒九点多才算起来,昨晚一直在弄飞凌的嵌入式开发板,有些问题没解决,自己电脑系统的问题,虽然Win10发布了,,但我还是好喜欢XP呀,好想回家用用家里的XP来 ...

  3. 转:nginx 从入门到精通的博文

    转:http://tengine.taobao.org/book/ Nginx开发从入门到精通   缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众 ...

  4. 自定义实现简单的Android颜色选择器(附带源码)

    在写Android App过程中需要一个简单的颜色选择器,Android自带的ColorPicker和网上的一些ColorPicker都太高端了,都实现了颜色渐变功能,我要的不需要那么复杂,只想提供几 ...

  5. iOS夯实:内存管理

    iOS夯实:内存管理 文章转自 内存管理 最近的学习计划是将iOS的机制原理好好重新打磨学习一下,总结和加入自己的思考. 有不正确的地方,多多指正. 目录: 基本信息 旧时代的细节 新时代 基本信息 ...

  6. Electron(一)--初步了解并动手HelloWorld

    现在需要做一个桌面应用,心里有点不甘,因为想做出一个简单的客户端,你要么使用Java的Swing编程,要么会使用MFC等等,这样学习的代价太高,也不便维护,于是了解了一下Electron,Electr ...

  7. iptables开始ftp

    如果本机做FTP被访问 iptables -I INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT //开放21端口iptables -I I ...

  8. linux FTP 批量下载文件

    wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理.wget名称的由来是“World Wide Web”与“ge ...

  9. Git 安装与使用(二)

    一.分支管理 在Git里,master是主分支,同时可以创建其他分支,支持各分支合并到主分支上,基本命令如下 1.创建分支 git checkout -b dev       创建dev分支,并切换到 ...

  10. 进度条轮播【BackgroundColor】

    直接贴代码先看 HTML: <div class="bannar"> <div class="img"> <ul> < ...