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循环来获得每一个文件的名字和长度.

 

 

下一节将详细介绍文件的读取和写入.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章