街角转弯处

用行动向世界证明存在的价值, 用实力打造真实的生命寓言.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

System.IO命名空间( 1 )

Posted on 2007-04-24 16:42  马路灯  阅读(626)  评论(1)    收藏  举报
System.IO命名空间( 1 )

        这两天看了不少关于System.IO名称空间的资料,也就是.NET中对文件操作部分, 也做了一些小例来验证(或者说是加深学习印象吧,呵呵), 也搞明白System.IO里为什么更多的使用FileInfo (DirectoryInfo) 而不使用File ( Directory)这两对貌似双胞的两对兄弟,其功能上都是对文件进行一些常用操作(如打开,修改,删除等等),在Google上搜了一下相关资料,发现了一段好地说明以上问题的文字描述,其内容如下:

        如果用户正试图对文件进行几种操作,可以使用FileInfo类。FileInfo类不包含静态的方法;因此,该类具有不同的用法。使用FileInfo类而不使用File类的原因在于,当创建一个FileInfo类,系统在第一次使用文件的时候要进行安全检查,而File类却在每次使用该方法的时候对文件进行一次安全检查。这是因为File类只有静态的方法,该方法无法确知对同一文件的多次访问。FileInfo类包含File类所有的功能,并且更多。但是因为FileInfo类的应用范围为一个指定的文件,因此在语法上略有不同。(相信DirectoryInfo也是同理)

        上面一段文字对对问题说明得也比较透彻了.

            File所提供的是一种静态引用的方法,可直接通过+方法方式使用

                  如 File.Delete(文件路径)   删除文件

            FileInfo则提供的是一种实例化的使用方法,使用时必须先进行实例化

                  如 FileInfo fi = new FileInfo(文件路径);
                        String name = fi.FullName;  取得文件完整目录
                        String Szie = fi.Length;  取得文件大小
                        fi.Delete();  删除文件

下面的表格System.IO命名空间中最重要的一些类,对文件的大部份基本操作就是通过运用这些类来完成的。

表1

类名

功能和用途

BinaryReader、BinaryWriter 读写二进制数据
Directory、File、DirectoryInfo以及FileInfo 创建、删除并移动目录和文件,通过属性获取特定目录和文件的相关信息
FileStream 以随机方式访问文件
MemoryStream 访问存储在内存中的数据
StreamReader 、StreamWriter 读写文本数据信息
StringReader、StringWriter 运用字符串缓冲读写文本数据信息


运用DirectoryInfo类和FileInfo类: 
         DirectoryInfo类和FileInfo类的基类都是FileSystemInfo类,这个FileSystemInfo类是一个抽象类,也就是说你不可以实例化该类,只能通过继承产生其子类并实例化其子类。從而运用由该类定义的各种属性來對文件進行各种操作,下面的表格显示了该类已经定义的各种属性。


常用
属性表2

属性

功能和用途

Attributes 返回和文件相关的属性值,运用了FileAttributes枚举类型值
CreationTime 返回文件的创建时间
Exists 检查文件是否存在于给定的目录中
Extension 返回文件的扩展名
LastAccessTime 返回文件的上次访问时间
FullName 返回文件的绝对路径
LastWriteTime 返回文件的上次写操作时间
Name 返回给定文件的文件名
Delete() 删除一个文件的方法,请务必谨慎地运用该方法