在c#编程中,System.IO.Directory类和System.DirectoryInfo类主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。
分享一段实例代码,学习下其主要属性和方法。
代码:
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO;
namespace Example 
{ 
    class Program 
    {
        static void Main(string[] args) 
        { 
  ////////////////   文件打开  下面的代码打开D:wang.txt文件,并且向文件中写入"hello" 
  FileStream textFile = File.Open(@"D:wang.txt", FileMode.Append);//以Append方式打开文件(如果不存在,会创建) 
  byte[] info = { (byte)'h', (byte)'e', (byte)'l', (byte)'l', (byte)'o' };//要写入的信息 
  textFile.Write(info, 0, info.Length);//Write方法只能写入byte数组    
  textFile.Close();//关闭文件流 
          
  ////////////////////// 文件创建    
  FileStream newText = File.Create(@"D:newText.txt");//创建文件 
  newText.Close();//关闭文件
  ////////////////////  删除文件 
  File.Delete(@"d:newText.txt");
  //////////////////  文件复制   如果目标文件存在,不允许复制(就是不能覆盖同名文件) 
  //File.Copy(@"d:wang.txt", @"d:CopyWang.txt");
  ////////////////  文件移动  只能在同一个盘中移动  如果目标路径不正确,不能移动 
           // File.Move(@"d:CopyWang.txt", @"D:Amovewang.txt");
  ////////////////////////  设置文件属性为 只读,隐藏 
  //File.SetAttributes(@"D:copywang.txt", FileAttributes.readonly | FileAttributes.Hidden);//同时满足多个属性,必须用位或(|).
  ///////////////  判断文件是不是存在 
  if (File.Exists(@"D:copywang.txt"))//如果存在  即便是隐藏的文件也可以找到 
  { 
      File.SetAttributes(@"D:copywang.txt", FileAttributes.ReadOnly);//重新设置属性后,隐藏的文件也会显示出来,只要不加Hidden属性 
      Console.WriteLine("找到文件copywang.txt"); 
  } 
  else 
  { 
      Console.WriteLine("没有找到文件CopyWang.txt"); 
  } 
  /* 
  此外,File类对于Text文本提供了更多的支持。 
          ?AppendText:将文本追加到现有文件 
          ?CreateText:为写入文本创建或打开新文件 
          ?OpenText:打开现有文本文件以进行读取 
          但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。 
          ?对txt文件进行“读”操作,示例代码如下:   
   */ 
  StreamReader textReader = new StreamReader(@"D:wang.txt", System.Text.Encoding.Default);//以默认编码方式打开文件 
  string str = textReader.ReadToEnd();//读取文件 
  Console.WriteLine("使用StreamReader读取文本内容:" + str); 
  textReader.Close();
  //////////////////对txt文件写内容 
  StreamWriter textWriter = new StreamWriter(@"D:wang.txt"); 
  str = "Learn .Net"; 
  textWriter.Write(str); 
  textWriter.Close();
  /* 
  System.IO.Directory类和System.DirectoryInfo类 
           主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。 
  */ 
  Directory.CreateDirectory(@"D:wang1wang");//创建目录(文件夹)如果已经存在,则保持;还可以一次创建多级目录
  /////////////////////////////////目录属性设置方法 
  DirectoryInfo dirInfo = new DirectoryInfo(@"D:wang1wang");// 
  dirInfo.Attributes = FileAttributes.Hidden;// | FileAttributes.ReadOnly;//设置文件夹属性
  /////////////////Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。 
  //如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。 
  //Directory.Delete(@"D:wang1", true);//如果文件设置为ReadOnly,则不能删除
  //Directory.Move(@"d:wang1", @"d:wang3");//把文件夹wang1移动到文件夹wang3中,相当于把wang1删除,创建一个wang3,再把内容移动到wang3
  string[] Directories = Directory.GetDirectories(@"D:wang3");//获得文件夹wang3的目录 
  foreach (string var in Directories) 
      Console.WriteLine(var);
  string[] Files = Directory.GetFiles(@"D:wang1");//获取文件夹wang1下面的所有文件 
  foreach (string var in Files) 
      Console.WriteLine(var);
  if (Directory.Exists(@"D:wang1")) 
      Console.WriteLine("文件夹wang1存在");
  /* 
  在C#中 “”是特殊字符,要表示它的话需要使用“”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“”。 
      所以上面的路径在C#中应该表示为“Book”,@“TmpBook”,@“C:TmpBook”。 
  */
  Console.ReadLine();  
        } 
    } 
}