C#DirectoryInfo类用法详解

DirectoryInfo类是System.IO命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。

DirectoryInfo类提供了下面列出的构造函数,方法和属性。

C# DirectoryInfo语法

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DirectoryInfo : FileSystemInfo

C#  DirectoryInfo构造函数

下表列出了DirectoryInfo类的构造函数。

构造函数 描述
DirectoryInfo(String) 它用于在指定的路径上初始化DirectoryInfo类的新实例。

C# DirectoryInfo属性

下表中列出了DirectoryInfo类的属性。

属性 描述
Attributes 它用于获取或设置当前文件或目录的属性。
CreationTime 它用于获取或设置当前文件或目录的创建时间。
CreationTimeUtc 它用于在协调的世界时间(UTC)中获取或设置创建时间。
Exists 它用于获取一个值,指示目录是否存在。
Extension 它用于获取表示文件扩展部分的字符串。
FullName 它用于获取目录的完整路径。
LastAccessTime 它用于获取或设置上次访问当前文件或目录的时间。
LastAccessTimeUtc 用于在当前文件或目录被上次访问的协调世界时间(UTC)中获取或设置时间。
LastWriteTime 它用于获取或设置当前文件或目录最后写入的时间。
LastWriteTimeUtc 当最后一次写入当前文件或目录时,它用于在协调世界时(UTC)中获取或设置时间。
Name 它用于获取此DirectoryInfo实例的名称。
Parent 它用于获取指定子目录的父目录。
Root 它用于获取目录的根部分。

C# DirectoryInfo方法

下表列出了DirectoryInfo类中定义的方法。

方法 描述
Create() 它用于创建一个目录。
Create(DirectorySecurity) 它用于使用DirectorySecurity对象创建目录。
CreateObjRef(Type) 它用于创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。
CreateSubdirectory(String) 它用于在指定的路径上创建一个子目录或子目录。
CreateSubdirectory(String,DirectorySecurity) 它用于在具有指定安全性的指定路径上创建子目录或子目录。
Delete() 如果DirectoryInfo为空,则用于删除DirectoryInfo。
Delete(Boolean) 它用于删除DirectoryInfo的实例,指定是否删除子目录和文件。
EnumerateDirectories() 它返回当前目录中可用的目录信息集合。
EnumerateFiles() 它在当前目录中返回无数的文件信息集合。
GetAccessControl() 它用于获取一个DirectorySecurity对象,该对象封装了目录的访问控制列表(ACL)条目。
GetDirectories() 它返回当前目录的子目录。
GetFiles() 它从当前目录返回文件列表。
GetType() 它用于获取当前实例的类型。
MoveTo(String) 它用于将DirectoryInfo实例及其内容移动到新路径。
Refresh() 它用于刷新对象的状态。
SetAccessControl(DirectorySecurity) 它用于设置DirectorySecurity对象描述的访问控制列表(ACL)条目。
ToString() 它返回用户传递的原始路径。

C# DirectoryInfo示例

在下面的例子中,通过指定目录路径来创建一个名称为:yiibai_dir的目录。参考以下示例代码的实现 -

using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // Provide directory name with complete location.
            DirectoryInfo directory = new DirectoryInfo(@"F:\worksp\csharp\yiibai_dir");
            try
            {
                // Check, directory exist or not.
                if (directory.Exists)
                {
                    Console.WriteLine("Directory already exist.");
                    return;
                }
                // Creating a new directory.
                directory.Create();
                Console.WriteLine("The directory is created successfully.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Directory not created: {0}", e.ToString());
            }
        }
    }
}

执行上面示例代码,得到以下结果 -

The directory is created successfully.

打开目录:F:\worksp\csharp 应该能看到有一个名称为:yiibai_dir的目录。

DirectoryInfo类还提供删除创建的目录的删除方法。

C# DirectoryInfo示例:删除目录

在以下程序中,我们将删除在上面示例程序中创建的yiibai_dir目录。

using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // Providing directory name with complete location.
            DirectoryInfo directory = new DirectoryInfo(@"F:\worksp\csharp\yiibai_dir");
            try
            {
                // Deleting directory
                directory.Delete();
                Console.WriteLine("The directory is deleted successfully.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Something went wrong: {0}", e.ToString());
            }
        }
    }
}

执行上面示例代码,得到以下结果 -

The directory is deleted successfully.

打开目录:F:\worksp\csharp 应该能看到yiibai_dir目录已经被删除了。

如果指定位置不存在目录,它将抛出一个System.IO.DirectoryNotFoundException异常。您可以自己修改上面代码测试一下。

到此这篇关于C#DirectoryInfo类用法详解的文章就介绍到这了,更多相关C#DirectoryInfo类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#和vb.net实现PDF 添加可视化和不可见数字签名

    目录 1. 在VS程序中通过Nuget安装 Spire.PDF for .NET 版本7.8.2,安装步骤如下: 2.在VS程序中添加如下代码添加数字签名 2.1 添加可视化数字签名 2.2 添加不可见数字签名 本文通过C#程序代码展示如何给PDF文档添加可视化数字签名和不可见数字签名.可视化数字签名,即在PDF文档中的指定页面位置添加签名,包含相关文字信息和签名图片等:不可见数字签名,即添加签名时不在文档中指定签名位置,在文档正文中不显示相关数字签名信息. 这里签名是通过PdfOrdinary

  • C#中Foreach循环遍历的本质与枚举器详解

    目录 前言 1.创建一个控制台应用程序 2.编写测试代码并分析 3.总结 前言 对于C#里面的Foreach学过 语言的人都知道怎么用,但是其原理相信很多人和我一样都没有去深究.刚回顾泛型讲到枚举器让我联想到了Foreach的实现,所以进行一番探究,有什么不对或者错误的地方大家多多斧正. 1.创建一个控制台应用程序 2.编写测试代码并分析 在Program类中写一个foreach循环 class Program { static void Main(string[] args) { List p

  • C#代码延时的几种实现

    目录 Task.Delay();异步实现 线程实现: 计时器方式实现: Task.Delay();异步实现 using System; using System.Threading.Tasks; namespace csharpYS { class Program { static void Main(string[] args) { Console.WriteLine("Mian方法第一次输出..."); #region 第一种形式 var task_1 = Task.Run(asy

  • C#利用File方法对文件的操作总结(字节写入和读取)

    C#文件的读和写提供了非常多的方法基本一两行就可以搞定"读和写",在编程里还是比较重要的 什么是读? 你的程序去读你磁盘里的文件 上面是写? 你的程序在你磁盘创建文件 有什么用? 可以保存数据,用户等2次打开时就不用重新加载,或者软件异常,把异常信息或日志信息等进行保存 @符作用: 路径使用是字符串类型,而路径有非常多的" \" 而如\n表示的是换行,为了不让这些"\"起到转义的意思 在路径前使用@表示这字符串并不需要其转义 所以写路径必须得在前

  • C#设计模式实现之迭代器模式

    目录 前言: 一.餐馆合并菜单 二.改进菜单实现 三.迭代器模式 总结 前言: 迭代器模式平时用的不多,因为不管C#还是Java都已经帮我封装了,但是你是否知道平时经常在用的东西本质是怎么回事呢. 看完迭代器模式你就知道C# foreach循环是怎么实现的了,我的另一篇C# Foreach循环本质与枚举器就讲解了foreach的本质,其中用到的就是迭代器模式. 按照惯例,例子走起.(写了几个小时浏览器崩溃,我看见在自动保存啊,结果没内容,再撸一遍精简点的吧) 一.餐馆合并菜单 现在有两个餐馆和并

  • C# 数组删除元素的实现示例

    本文主要介绍了C# 数组删除元素的实现示例,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace _1207_数组删除元素 { class Program { //只能在动态数组ArrayList类中对数组执行删除元素的操作. //因为动

  • C# SelectedIndexChanged事件详解

    SelectionChangeCommitted事件 在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发该事件, 只是在界面选择combobox不同值时触发. SelectedIndexChanged事件  当 SelectedIndex 属性更改时发生,索引改变时触发. SelectedValueChanged事件   当 SelectedValue 属性更改时发生,值改变时触发. 区别: SelectedIndex

  • 关于C#操作文件路径(Directory)的常用静态方法详解

    目录 Directory: 创建文件夹 删除文件夹 获取文件夹下的子文件夹 获取同类型的文件 判断文件夹是否存在 移动文件夹 总结 之前发过File对文件的操作 C# (File方法)对文件的操作,字节写入和读取 Directory: 主要用于操作文件的路径,如创建文件夹和获取文件夹的所有子目录, 简单的说就是"操作文件夹",而File是操作文件的 创建文件夹 直接使用静态方法,在C盘创建一个名为a的文件夹 Directory.CreateDirectory(@"C\a&qu

  • C#DirectoryInfo类用法详解

    DirectoryInfo类是System.IO命名空间的一部分.它用于创建,删除和移动目录.它提供了执行与目录和子目录相关的操作的方法.这是一个密封的类,所以不能继承它. DirectoryInfo类提供了下面列出的构造函数,方法和属性. C# DirectoryInfo语法 [SerializableAttribute] [ComVisibleAttribute(true)] public sealed class DirectoryInfo : FileSystemInfo C#  Dir

  • Django admin管理工具TabularInline类用法详解

    TabularInline类用于在A页面上编辑B表的字段,举例说明,如果models.py中有Staff.Job两个model: from django.db import models class Staff(models.Model): name = models.CharField(max_length=10) class Job(models.Model): staff = models.ForeignKey(Staff) task = models.CharField(max_leng

  • Java String类用法详解

    一.简介 零碎知识点 extends Object implements serializable,Comparable< String >,charSequence String类表示字符串,所有字符串文字都是此类的对象 字符串是不变的,值在创建后无法更改 对象一旦声明则不可改变,改变的只是地址,原来的字符串还是存在的,并且产生垃圾 任何一个""都为字符串对象,无赋值则为匿名对象 用"+"拼接字符串尽量避免,一般用append+toString Str

  • C++ stringstream类用法详解

    本文主要介绍 C++ 中 stringstream 类的常见用法. 1 概述 <sstream> 定义了三个类:istringstream.ostringstream 和 stringstream,分别用来进行流的输入.输出和输入输出操作.本文以 stringstream 为主,介绍流的输入和输出操作. <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险:而且,因

  • Java BigDecimal类用法详解

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象,我们不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法.方法中的参数也必须是BigDe

  • Java基础类库之StringBuffer类用法详解

    StringBuffer类 String类是在所有开发项目开发之中一定会使用的一个功能类,并且这个类拥有如下功能 每个字符串的常量都属于一个String类匿名对象,并且不能修改: String类有两个常量池:静态常量池.运行常量池: String类对象实例化建议直接使用赋值的形式完成,这样可以直接将对象保存在对象池中方便下次重用: 虽然String类很好用,但是我们发现它也有弊端,就是内容不允许频繁修改,所以为了解决问题,我们提供了StringBuffer类 StringBuffer 并不像St

  • Zend Framework分页类用法详解

    本文实例讲述了Zend Framework分页类用法.分享给大家供大家参考,具体如下: 1.分页类Pagination.php,最好是把这个类放在Zend目录下 class XY_Pagination { private $_navigationItemCount = 10; //导航栏显示导航总页数 private $_pageSize = null; //每页项目数 private $_align = "right"; //导航栏显示位置 private $_itemCount =

  • phplot生成图片类用法详解

    本文实例讲述了phplot生成图片类用法.分享给大家供大家参考.具体分析如下: phplot是一个利用php的图象函数编写的一个自动生成类,首先申明一下,我对他也只是了解. 在原来的有些版本好象还需要多方面的配置和支持,不过现在都用的是php5系列了,大家只要了解一些常用到的函数,就比如我们学习一种软件一样,只需要懂得怎样使用他就可以了,如果感兴趣的朋友可以深入的学习学习,不过对于我们大多数的朋友来说,只要会使用他就可以了,毕竟也不是常用,只是需要用php作图的时候才用到他.所以我们只需要知道他

  • Java Arrays工具类用法详解

    本文实例讲述了Java Arrays工具类用法.分享给大家供大家参考,具体如下: Arrays类 功能描述 Arrays类是一个工具类,其中包含了数组操作的很多方法,比如搜索和排序: Arrays类中的方法均为static修饰的,可以直接通过Arrays.xxx(xxx)的形式调用方法. 几个重要方法   1.asList(T... a) 由给定的数组a,返回一个固定大小的List对象.在这里,着重解释一下前面这句话的深层含义,我们可以看Arrays类的源码,来帮助我们理解. 生成的List对象

  • C#中的HttpWebRequest类用法详解

    HttpWebRequest 是一个Http 请求类,继承于 WebRequest. WebRequest 是一个抽象类,能够对统一资源标识符 (URI) 发出请求. WebRequest 有以下派生类: System.IO.Packaging.PackWebRequest System.Net.FileWebRequest System.Net.FtpWebRequest System.Net.HttpWebRequest 使用时 using System.Net; 1,HttpWebRequ

随机推荐