Directory和DirectoryInfo类提供用于创建、移动以及遍历目录和子目录的常用方法。由于Directory类的所有方法都是静态的,因此不用创建这个类的实例就可以调用这些方法。DiretoryInfo类只包含实例方法。Directory类的静态方法对所有的方法执行安全检查。如果要多次重用某个对象,可考虑改用Directorylnfo的相应实例方法,因为安全检查并不总是必需的。
下例演示了如何使用Directorylnfo类来创建一个目录内的某种列表。
【实例7-6】 使用Directorylnfo类来创建一个目录内的某种列表。
- using System;
- using System.IO;
- class DirectoryLister
- {
- public static void Main(string[] args)
- {
- DirectoryInfo dir=new DirectoryInfo(".");
- foreach(FileInfo f in dir.GetFiles("*.cs"))
- {
- string name=f.FullName;
- long size=f.Length;
- DateTime creationTime=f.CreationTime;
- Console.WriteLine("{0,-12:NO} {1,-20:g} {2}",size,creationTime,name);
- }
- }
- }
在上面的示例中,Dimctorylnfo对象是当前目录,用"."表示。代码列出了当前目录下扩展名为.cs的所有文件名,以及文件大小和创建时间。
假定在驱动器C的\Bin子目录下存在扩展名为.cs的文件,则代码的输出如下。
- 9537/20/2006 10:42 AH c:\B1n\paramatt.cs
- 6647/27/2006 3:11 PM c:\Bin\tst.cs
- 4038/8/2006 IO:25 AM c:\Bin\dirlist.cs
如果想要另一个目录如C:\下的文件列表,记住要使用反斜杠(\)这个转义字符。
- "c:\\"
或在C#中使用一个@引用字符串:
- @"c:\"
若要以跨平台的方式处理目录字符串,则应使用Path类。Path类的成员可以快速、方便地完成一些常见操作,例如确定文件扩展名是否是路径的一部分,以及将两个字符串组合成一个路径名等。