DirectoryInfo类与FileInfo类一个,是实例化类,DirectoryInfo类的功能与Directory的静态类一样主要用于管理文件夹操作,它与FileInfo类共享了许多相同的方法和属性,因为这两个类都有一个相同的抽象基类:FileSystemInfo。

在Directory类中每个方法调用都需要进行安全性检查,已确认是否有权限执行这个方法。这对于频繁是的方法来说,需要损失一个性能,DirectoryInfo类在调用之前,已经完成了安全性检查工作,但是,使用前,必须先实例化DirectoryInfo类,所以,一般对于只执行一次或执行较少的方法用Directory类,而相对频繁反复的方法,则应考虑使用DirectoryInfo类

下面用代码来比较Directory和DirectoryInfo两个类的区别

const string sourcePath = @"D:\lichenDirectoryInfo";
            const string destPath = @"D:\lichenDirectoryInfo1";
            //使用构造函数DirevtoryInfo
            DirectoryInfo di = new DirectoryInfo(sourcePath);
            if (!di.Exists)
            {
                di.Create();

            }
            //创建子目录SubDirectory
            di.CreateSubdirectory("SubDirectory");
            Console.WriteLine("{0}的信息为",di.FullName);//FullName 获取目录或文件的完整目录,这里是前者
            Console.WriteLine("父目录是{0}",di.Parent.FullName);
            Console.WriteLine("根目录{0}",di.Root.FullName);
            Console.WriteLine("属性{0}",di.Attributes.ToString());
            Console.WriteLine("建立时间{0}",di.CreationTime.ToString());
            Console.WriteLine("最后一次访问时间{0}",di.LastAccessTime.ToString());
            Console.WriteLine("获取最后一次写入时间{0}",di.LastWriteTime.ToString());
            Console.WriteLine("文件夹被移动");
            if (Directory.Exists(destPath))
            {
                Directory.Delete(destPath, true);//这里的用的true是删除子文件和子目录

            }
            di.MoveTo(destPath);
                Console.WriteLine("文件夹被被删除");
            if (Directory.Exists(di.FullName+ @"SubDirectory"));
            {
            Directory.Delete(di.FullName+@"SubDirectory");
            }
            di.Delete();

Posted on 2011-01-06 18:22  lichen396116416  阅读(1246)  评论(0编辑  收藏  举报