首页 / 软件开发 / .NET编程技术 / 路径,文件,目录,I/O常见操作汇总(二)
路径,文件,目录,I/O常见操作汇总(二)2012-01-16摘要:文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。主要内容:一、路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容;二、相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录;三、文件、目录、驱动器的操作,如获取它们的基本信息,获取和设置文件和目录的属性,文件的版本信息,搜索文件和目录,文件判等,复制、移动、删除、重命名文件和目录;四、读写文件,包括临时文件,随机文件名等;五、对文件系统的监视;上一篇介绍了第一、二部分,这一篇介绍一下最重要的第三部分。三、文件和目录相关操作文件和目录操作涉及的类主要是:FileInfo,DirectoryInfo,DriveInfo,可以认为它们的一个实例对应着一个文件、目录、驱动器。它们的用法类似,一般是将文件、目录或驱动器的路径作为参数传递给相应的构造函数创建一个实例,然后访问它们的属性和方法。注意下面几点:FileInfo 类和 DirectoryInfo 类都继承自抽象类 FileSystemInfo , FileSystemInfo 类定义了一些通用的属性,如 CreationTime 、 Exists 等。但 DriveInfo 类没有继承 FileSystemInfo 类,所以它也就没有上面提到的那些通用属性了。FileInfo 类和 DirectoryInfo 类的对象公开的属性值都是第一次查询时获取的值,如果在以此查询之后文件或目录发生了改动,就必须调用它们的 Refresh 方法来更新这些属性。但 DriveInfo 则无需这么做,它的属性每次都会读取文件系统最新的信息。在创建文件、目录或驱动器的实例时,如果使用了一个不存在的路径,并不会报错,这是你得到一个对象,该对象表示一个并不存在的实体,这意味着它的 Exists 属性(对于 DriveInfo 来说是 IsReady 属性)值为 false 。你仍然可以操作该实体,但如果尝试其它的大多数属性,就会引发相应的 FileNotFoundException 、 DirectoryNotFoundException 或 DriveNotFoundException 异常。另外,还可以使用 File / Directory 类,这两个类的成员都是静态方法,所以如果只想执行一个操作,那么使用 File/Directory 中的静态方法的效率比使用相应的 FileInfo / DirectoryInfo中的 实例方法可能更高。所有的 File / Directory 方法都要求当前所操作的文件 / 目录的路径。 注意: File / Directory 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 FileInfo / DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。