zoukankan      html  css  js  c++  java
  • C# Directory类的操作

     

     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: empuploads文件夹下创建名为NewDirectory的目录。

      private void MakeDirectory()

      {

         Directory.CreateDirectory(@"c: empuploadsNewDirectoty");

      }

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

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

     private void SetDirectory()

     {

         DirectoryInfo NewDirInfo = new DirectoryInfo(@"c: empuploadsNewDirectoty");

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

      }

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

     该方法声明如下:

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

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

     private void DeleteDirectory()

    {

         Directory.Delete(@"c: empuploadsBackUp",true);

    }

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

     该方法声明如下:

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

    下面的代码将目录c: empuploadsNewDirectory移动到c: empuploadsBackUp。

     private void MoveDirectory()

     {

         File.Move(@"c: empuploadsNewDirectory",@"c: empuploadsBackUp");

     }

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

     该方法声明如下:

     public static string[] GetDirectories(string path);

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

      private void GetDirectory()

     {

        string [] Directorys;

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

     }

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

     该方法声明如下:

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

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

     private void GetFile()

     {

        string [] Files;

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

     }

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

     该方法声明如下:

     public static bool Exists

     (

        string path;

     );

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

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

    {

        GetDirectory(); //获取子目录

        GetFile(); //获取文件

        MoveDirectory(); //移动目录

        DeleteDirectory(); //删除目录

    }

    else

    {

        MakeDirectory(); //生成目录

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

    }

    注意:

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

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

  • 相关阅读:
    【转】VS2010中 C++创建DLL图解
    [转]error: 'retainCount' is unavailable: not available in automatic reference counting mode
    [转]关于NSAutoreleasePool' is unavailable: not available in automatic reference counting mode的解决方法
    【转】 Tomcat v7.0 Server at localhost was unable to start within 45
    【转】Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If
    【转】SVN管理多个项目版本库
    【转】eclipse安装SVN插件的两种方法
    【转】MYSQL启用日志,和查看日志
    【转】Repository has not been enabled to accept revision propchanges
    【转】SVN库的迁移
  • 原文地址:https://www.cnblogs.com/lgx5/p/6890641.html
Copyright © 2011-2022 走看看