C#文件和目录 - "飞"娥 - 博客园

来源:百度文库 编辑:神马文学网 时间:2024/04/18 18:49:16
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循环来获得每一个文件的名字和长度.