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