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类的成员可以快速、方便地完成一些常见操作,例如确定文件扩展名是否是路径的一部分,以及将两个字符串组合成一个路径名等。