2024年3月13日发(作者:)
C#2010 目录和目录信息类
在C#中,将所有的Windows目录看作是一个类,并将具体的某个类看作是一
个对象。使用C#,需要通过命名空间中的Directory类和DirectoryInfo
类对目录进行处理。
1.Directory目录类
在读写Windows文件系统的目录时,需要使用到Directory类,该类的作用是
对具体的目录进行创建、删除、移动等操作。Directory类包含如下几种方法,如表
10-3所示。
表10-3 Directory类的方法
方法
CreateDirectory()
说明
该方法接受一个参数,用于根据参数创建目录。该方法返回一个Direct
oryInfo类实例。表示新创建的目录或者子目录。注意,如果目录已经存
在,会返回代表指定的目录的类实例,不会创建目录,也不会产生异常
Delete() 该方法接受一个或两个参数。在两个重载的方法中,第一个参数包含要
删除的目录。如果使用带有一个参数的方法,当目录不为空时,系统将
会抛出异常。第二个方法需要一个附加的bool参数。该参数为true时,
将会从目录中删除所有的子目录和文件。否则,会再次抛出.I
OException异常
Equals()
Exists()
GetAccessControl()
GetCreationTime()
GetCurrentDirectory()
GetDirectories()
该方法用于确定两个Object实例是否相等
该方法接受一个参数。参数是包含当前工作目录的字符串。返回指示目
录是否存在的bool值。如果存在,返回true,否则返回false
该方法获取一个DirectorySecurity对象,该对象封装指定目录的访问控
制列表(ACL)项。
该方法接受一个参数。该参数为包含目录的字符串。返回一个日期时间
型数值,该数值表示该目录创建的时间和日期,这里时间是指本地时间
该方法用于获取应用程序的当前工作目录
该方法用于获取指定目录的子目录名称,它接受一个或两个参数,在两
个重载的方法中,第一个参数表示目录名。如果带一个参数,方法返回
参数所表示目录的子目录。在接受两个参数的方法中第二个参数表示与
第一个参数所表示目录的子目录中匹配的目录名,如果存在就返回所匹
配目录的绝对目录,否则不返回任何信息
GetFiles() 该方法用于返回指定目录中文件的名称,它接受一个或两个参数,在两
个重载的方法中,第一个参数表示目录名。如果带一个参数,方法返回
参数所表示目录所包含的文件。在接受两个参数的方法中第二个参数表
示与第一个参数所表示目录所包含的文件中匹配的文件名,如果存在就
返回所匹配文件的绝对目录,否则不返回任何信息。
GetFileSystemEntries()
GetHashCode()
GetLastAccessTime()
GetLastWriteTime()
GetLogicalDrives()
GetParent()
GetType()
Move()
SetCreationTime()
SetCurrentDirectory()
SetLastAccessTime()
SetLastWriteTime()
ToString()
该方法用于返回指定目录中所有文件和子目录的名称
该方法用作特定类型的哈希函数。GetHashCode适合在哈希算法和数据
结构(如哈希表等)中使用
该方法用于返回上次访问指定文件或目录的日期和时间。该值为DateTi
me结构,用本地时间表示
该方法用于返回上次写入指定文件或目录的日期和时间,也是为DateTi
me结构,用本地时间表示
该方法用于检索此计算机上格式为“<驱动器号>:”的逻辑驱动器的名
称
该方法用于检索指定路径的父目录,包括绝对路径和相对路径。
该方法用于获取当前实例的Type,它从Object继承。
该方法用于将文件或目录及其内容移动到新位置
该方法用于为指定的文件或目录设置创建日期和时间
该方法用于将应用程序的当前工作目录设置为指定的目录
该方法用于设置上次访问指定文件或目录的日期和时间
该方法用于设置上次写入目录的日期和时间
该方法用于返回表示当前Object的String,它从Object继承。
2.DirectoryInfo目录信息类
Directory类本身是一个抽象类,其并不能实例化为具体的对象。因此在操作 时,
需要使用DirectoryInfo类操作具体的目录对象。DirectoryInfo类作为目录的实例,
其具有如下几种属性,如表10-4所示。
表10-4 DirectoryInfo类的属性
名称
Attributes
CreationTime
CreationTimeUtc
Exists
Extension
FullName
LastAccessTime
说明
获取或设置当前文件或目录的特性。
获取或设置当前文件或目录的创建时间。
获取或设置当前文件或目录的创建时间,其格式为协调世界时 (UTC)。
获取指示目录是否存在的值。
获取表示文件扩展名部分的字符串。
获取目录或文件的完整目录。
获取或设置上次访问当前文件或目录的时间。
LastAccessTimeUtc 获取或设置上次访问当前文件或目录的时间,其格式为协调世界时 (UTC)。
LastWriteTime
LastWriteTimeUtc
Name
获取或设置上次写入当前文件或目录的时间。
获取或设置上次写入当前文件或目录的时间,其格式为协调世界时 (UTC)。
获取此 DirectoryInfo 实例的名称。
Parent
Root
获取指定子目录的父目录。
获取路径的根部分。
3.创建目录
例如创建一个具体的目录,应使用DirectoryInfo类先定义目录的实例,然后再
调用Directory类的方法进行创建,如下所示。
DirectoryInfoName = Directory(PathName);
DirectoryInfoName = Directory(FolderName);
在上面的代码中,DirectoryInfoName关键字表示目录的实例名称;PathName
关键字表示路径的字符串;FolderName关键字表示目录名称的字符串。例如,在C
盘创建一个名为“C#”的目录,可以使用以下方式。
DirectoryInfo dir;
dir = Directory("c:C#");
在上面的代码中,为C盘创建了一个名为“C#”的目录。需要注意的是由于字
符串本身不能识别斜杠“”符号,因此需要使用转义符“”对其进行转义处理。
4.删除目录
删除目录与创建目录的方法不同,在删除目录时,无需创建目录的实例,直接
调用Directory类的Delete()方法即可,如下所示。
("c:C#");
("c:C#" , true);
在上面的代码中,展示了Delete()方法的两种用法。在使用第一种用法时,将
直接删除空的目录(仅在目录为空时有效),第二种方法则可以对非空目录进行删
除操作,且当第二个参数为true时,删除目录下的子目录和文件。
在使用Delete()方法时,系统将直接对目录进行删除,且并不会将目录放入回
收站中。因此在使用这一命令时需要谨慎操作。
5.移动目录
Directory类提供了Move方法,允许将一个目录移动到相同逻辑分区的另一个
目录中。除此之外,还可以实现对目录名称的重定义,其使用方法如下。
(SourcePath , TargetPath);
在上面的代码中,SourcePath关键字表示源目录;TargetPath关键字表示目标目
录。例如,将之前创建的C:C#目录修改为C:C#.net,代码如下。
("C:C#" , "C:C#.net");
在使用Move()方法时需要注意,Move()方法本身的操作原理是修改文件系统的
文件分配表,因此其只能针对特定逻辑分区操作,不能执行跨逻辑分区的目录移动。


发布评论