C# Filelnfo类
与Hie类不同,Filelnfo类不是静态的,没有静态方法,只有在实例化后才可使用。Filelnfo对象表示磁盘或网络位置上的文件。提供文件路径,就可以创建一个Filelnfo对象:
Filelnfo aFile = new Filelnfo <@"C:\Log.txt*1);
在路径名中,你也可以使用“/”字符。但那样的话,当执行的Windows命令为命令行选项使“/”时,将会发生冲突。
也可将目录名传递给FileInfo构造函数,但实际上这并不是很有用。这么做会用所有的目录信息初始化FileInfo的基类FilesSystemlnfo,但FileInfo中与文件相关的专用方法或属性都不会工作。
FileInfo类提供的许多方法类似于File类的方法,但由于File是静态类,它需要一个字符串参数为每个方 法调用指定文件位置。因此,下面的调用可以完成相同的工作:
Filelnfo aFile = new Filelnfo("Data.txt");
if (aFile.Exists)
WriteLine ("File Exists");
if (File.Exists("Data.txt"))
WriteLine {"File Exists");
这段代码检查文件Data.txt是否存在。注意,这里没有指定任何目录信息,这说明只检査当前的工作目录。这个目录包含调用此代码的应用程序。
Filelnfo类的许多方法与File类中的对应方法类似。大多数情况下使用什么技术并不重要,但下面的规则有助于确定哪种技术更合适:
• 如果仅进行单一方法调用,则可使用静态File类上的方法。在此,单一调用要快一些,因为.NET Framework不必实例化新对象,再调用方法。
• 如果应用程序在文件上执行几种操作,则实例化Filelnfo对象并使用其方法就更好一些。这节省时间,因为对象己在文件系统上引用正确的文件,而静态类必须每次都寻找文件。
Filelnfo类也提供了与底层文件相关的属性,其中一些属性可用来更新文件,其中很多属性都继承于FileSystemlnfo.所以可应用于 Filelnfo和 Directorylnfo类。FileSystemlnfo类的属性如表所不。
属 性 | 说明 |
Attributes | 使用FileAttributes枚举,获取或者设置当前文件或目录的特性 |
CreationTime, CreationTimeUtc | 获取当前文件的创建日期和时间,可使用UTC和非UTC版本 |
Extension | 提取文件的扩展名。这个属性是只读的 |
Exists | 确定文件是否存在,这是一个只读的抽象属性,在Filelnfo和Directorylnfo中进行了重写 |
FullName | 检索文件的完整路径,这个属性是只读的 |
LastAccessTime, LastAccessTimeUtc | 获取或设盟上次访问当前文件的日期和时间,可使用UTC和非UTC版本 |
LastWriteTime, LastWriteTimelltc | 获取或设罝上次写入当前文件的日期和时间,可使用UTC和非UTC版本 |
Name | 检索文件的完整路径,这是一个只读抽象属性,在Filelnfo和Directorylnfo中进行了重写 |
Filelnfo的专用属性如表所示。
属 性 | 说明 |
Directory | 检索一个Directorylnfo对象,表示包含当前文件的目录。这个屈性是只读的 |
DirectoryName | 返回文件目录的路径。这个属性是只读的 |
IsReadOnly | 文件只读特性的快捷方式。也可以通过Attributes来访问这个屈性 |
Length | 获取文件的大小(以字节为单位),返回long值。这个属性是只读的 |
点击加载更多评论>>