C#文件和目录

一. C#提供的文件操作

   File类和FileInfo类的区别和使用方法.,两者的主要区别是File不能实例化,只提供静态方法,而后者可以实例化,,提供的方法和File类相似.先看下利用FileInfo构造的一个实例: FileInfo myfile = new FileInfo("c:\\abc.txt");

  创建 一个文件实例对象,现在我们可以看下它的属性:

 

  FileInfo myfile = new FileInfo("c:\\abc.txt");

  Console.WriteLine(myfile.Attributes);//属性

  Console.WriteLine(myfile.CreationTime);//创建时间

  Console.WriteLine(myfile.CreationTimeUtc);//Utc时间

  Console.WriteLine(myfile.Directory);//目录

  Console.WriteLine(myfile.DirectoryName);//目录名字

  Console.WriteLine(myfile.Exists);//是否存在

  Console.WriteLine(myfile.Extension);文件扩展名

  Console.WriteLine(myfile.FullName);//全名

  Console.WriteLine(myfile.IsReadOnly);是否只读

  Console.WriteLine(myfile.LastAccessTime);上次访问

  Console.WriteLine(myfile.LastAccessTimeUtc);时间

  Console.WriteLine(myfile.LastWriteTime);上次读入

  Console.WriteLine(myfile.LastWriteTimeUtc);时间

  Console.WriteLine(myfile.Length);文件长度

  Console.WriteLine(myfile.Name);文件名字

  Console.WriteLine("以上是实例文件的属性");

 

  至于File和FileInfo提供的方法,我在这里不全部介绍,大家可以去msdn.查看.下面举例说明下与文件有关的操作.:读取文件的内容,中间有些知识没有介绍,大家自己可以先去思考或者搜索相关内容,.

  FileInfo myfile = new FileInfo("c:\\abc.txt");

  if (!myfile.Exists)//判断文件是否存在,

  myfile.Create();不在就创建文件

  FileStream fs = new FileStream

  ("c:\\abc.txt", FileMode.Open)//打开文件

  StreamReader sr = new StreamReader(fs);输入流

  string strLine = "";

  try

  {

  strLine = sr.ReadLine();//读取文件里的一行

  while (strLine != null)//非空

  {

  strLine = sr.ReadLine();继续读取下一行

  }直到文件的最后一行

  sr.Close();//关闭流

  }

  catch (IOException ex){//处理异常

  throw ex;

  }

 

   File类是静态类, File方法都是静态的,所以如果只想执行一个操作,那么使用File方法的效率比使用相应的FileInfo 实例方法可能更高。所有的File方法都要求当前所操作的文件的路径。File 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用FileInfo的相应实例方法,因为并不总是需要安全检查。

  二. C#的目录操作

   C#提供DirectoryInfo和Directory两个类来处理与目录相关的操作. 前者必须被实例化后才能使用,而后者则只提供了静态的方法。如果多次使用某个对象一般使用前者;如果仅执行某一个操作则使用后者提供的静态方法效率更

  高一些。

  DirectoryInfo的构造函数:DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");

          DirectoryInfo di2 = new DirectoryInfo("c:\\MyDir ");

  下面举例说明获取一个目录下的所有文件的名字和长度.

  DirectoryInfo Info =

   new DirectoryInfo("c:\\");

  FileInfo []files = Info.GetFiles();

  foreach (FileInfo text in files)

  {

  TextBox1.Text += text.Name;

  TextBox1.Text +="  "+ text.Length;

  TextBox1.Text += "\n";

  }

 

  FileInfo []files = Info.GetFiles();这个方法的作用是获取当前目录下所有的文件,不包含当中的子目录.将所有的文件赋给一个文件类集合,再用Foreach循环来获得每一个文件的名字和长度.

posted @ 2009-07-20 19:55  zhdonghu  阅读(556)  评论(0编辑  收藏  举报