Directory类位于System.IO 命名空间。Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法。此外,你还可以访问和操作各种各样的目录属性,例如创建或最后一次修改时间以及Windows访问控制列表等。

System.IO.Directory类和System.DirectoryInfo类

主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。

百度经验:jingyan.baidu.com

方法/步骤

1.目录创建方法:Directory.CreateDirectory

该方法声明如下:

public static DirectoryInfo CreateDirectory(string path);

下面的代码演示在c:\tempuploads文件夹下创建名为NewDirectory的目录。

private void MakeDirectory()

{

Directory.CreateDirectory(@"c:\tempuploads\NewDirectoty");

}

2.目录属性设置方法:DirectoryInfo.Atttributes

下面的代码设置c:\tempuploads\NewDirectory目录为只读、隐藏。与文件属性相同,目录属性也是使用FileAttributes来进行设置的。

private void SetDirectory()

{

DirectoryInfo NewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty");

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

}

3.目录删除方法:Directory.Delete

该方法声明如下:

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

下面的代码可以将c:\tempuploads\BackUp目录删除。Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。如果该参数值为true,将删除整个目录,即使该目录下有文件或  子目录;若为false,则仅当目录为空时才可删除。

private void DeleteDirectory()

{

Directory.Delete(@"c:\tempuploads\BackUp",true);

}

4.目录移动方法:Directory.Move

该方法声明如下:

public static void Move(string sourceDirName,string destDirName);

下面的代码将目录c:\tempuploads\NewDirectory移动到c:\tempuploads\BackUp。

private void MoveDirectory()

{

File.Move(@"c:\tempuploads\NewDirectory",@"c:\tempuploads\BackUp");

}

5.获取当前目录下的所有子目录方法:Directory.GetDirectories

该方法声明如下:

public static string[] GetDirectories(string path);

下面的代码读出c:\tempuploads\目录下的所有子目录,并将其存储到字符串数组中。

private void GetDirectory()

{

string [] Directorys;

Directorys = Directory. GetDirectories (@"c:\tempuploads");

}

6.获取当前目录下的所有文件方法:Directory.GetFiles

该方法声明如下:

public static string[] GetFiles(string path;);

下面的代码读出c:\tempuploads\目录下的所有文件,并将其存储到字符串数组中。

private void GetFile()

{

string [] Files;

Files = Directory. GetFiles (@"c:\tempuploads");

}

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

该方法声明如下:

public static bool Exists

(

string path;

);

下面的代码判断是否存在c:\tempuploads\NewDirectory目录。若存在,先获取该目录下的子目录和文件,然后其移动,最后将移动后的目录删除。若不存在,则先创建该目录,然后将目录属性设为只读、隐藏

if(File.Exists(@"c:\tempuploads\NewDirectory")) //判断目录是否存在

{

GetDirectory(); //获取子目录

GetFile(); //获取文件

MoveDirectory(); //移动目录

DeleteDirectory(); //删除目录

}

else

{

MakeDirectory(); //生成目录

SetDirectory(); //设置目录属性

}

注意:

路径有3种方式,当前目录下的相对路径、当前工作盘的相对路径、绝对路径。以C:\Tmp\Book为例(假定当前工作目录为C:\Tmp)。“Book”,“\Tmp\Book”,“C:\Tmp\Book”都表示C:\Tmp\Book。

另外,在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。所以上面的路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。

C# Directory类的操作的更多相关文章

  1. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  2. C#文件操作常用相关类(Directory类、File类、Path类)

    1.文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作.拷贝.删除.剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个 ...

  3. 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类

    Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...

  4. I/O Directory类

    Directory类 Directory类位于System.IO 命名空间.Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法.此外,你还可以访问和操作各种各样的目录属性. 1 ...

  5. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  6. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  7. C# Directory类

    Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多个目录. 2.Dele ...

  8. Java NIO Path接口和Files类配合操作文件

    Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...

  9. File类和Directory类

    File类和Directory类分别用来对文件和各种目录进行操作,这两类可以被实例化,但不能被其他类集成. 1. File类(静态类) File类支持对文件的基本操作,它包括用于创建.复制.删除.移动 ...

随机推荐

  1. mOByDiC E90C2600 EOBD/OBDII to RS232 gateway

    http://www.ozenelektronik.com/downs/pdf/oe90c2600.pdf Features • Compatible with EOBD/OBDII standard ...

  2. Effective JavaScript Item 51 在类数组对象上重用数组方法

    Array.prototype对象上的标准方法被设计为也能够在其他对象上重用 - 即使不是继承自Array的对象. 因此,在JavaScript中存折一些类数组对象(Array-like Object ...

  3. dao层知识点总结

    1.dao层要有connection 2.dao层进行分页,mysql limit关键字 3.dao层进行结果集转换为java bean 4.dao层queryforlist

  4. tomcat JVM内存 配置

    原文:http://elf8848.iteye.com/blog/467460 常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java ...

  5. 【资料】wod属性

    各个属性的影响力量 st 影响近战远程伤害和体力体质 co 影响体力(比力量的影响大)智力 in 影响法力和魔法防御灵巧 dx 影响近战远程命中和近战躲闪魅力 ch 影响诅咒和治愈能力,诅咒攻击命中和 ...

  6. React的第一个例子

    准备: 官网:https://facebook.github.io/react/downloads.html Github地址:https://github.com/facebook/react 首先 ...

  7. Dockerfile命令

    Dockerfile分基础镜像信息.维护者信息.镜像操作指令.容器启动时执行指令 FROM 镜像名:标签 第一条指令必须时FROM MAINTAINER 维护者信息 RUN command或者RUN ...

  8. C#中使用SQLite数据库简介(下)

    [SQLite管理工具简介] 推荐以下2款: Navicat for SQLite:功能非常强大,几乎包含了数据库管理工具的所有必需功能,操作简单,容易上手.唯一的缺点是不能打开由System.Dat ...

  9. Mac那些相见恨晚的技巧

    Mac那些相见恨晚的技巧 https://mp.weixin.qq.com/mp/homepage?__biz=MzAxNzcwMTA4Ng==&hid=2&sn=4f42926a59 ...

  10. Linux中基于hadoop安装hive(CentOS7+hadoop2.8.0+hive2.1.1)

    http://blog.csdn.net/pucao_cug/article/details/71773665