2024年2月20日发(作者:)

问题5:如何获取指定目录的基本信息;

解决方案:可以使用DirectoryInfo类的相关属性和方法:

:获取指定目录是否存在;

:获取目录的名称;

me:获取目录的全限定名称(完整路径);

utes:获取或设置指定目录的属性,返回类型为FileAttributes枚举,可以是多个值的组合;

onTime、cessTime、iteTime:分别用于获取目录的创建时间、访问时间、修改时间;

:获取目录的上级目录,返回类型为DirectoryInfo;

:获取目录的根目录,返回类型为DirectoryInfo;

问题6:如何获取指定目录包含的文件和子目录;

解决方案:

es():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;

ectories():获取目录(不包含子目录)的子目录,

返回类型为DirectoryInfo[],支持通配符查找;

DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,

返回类型为FileSystemInfo[],支持通配符查找;

问题7:如何获得指定目录的大小;

解决方案:

检查目录内的所有文件,利用属性获取每个文件的大小,然后进行合计,然后使用递归算法处理所有的子目录的文件,参考下面代码:

alidPathChars或alidFileNameChars方法,可以根据它来判断路径中是否包含非法字符

或方法

ectoryName 方法:返回指定路径字符串的目录信息;

ension方法 : 返回指定的路径字符串的扩展名;

eName方法 : 返回指定路径字符串的文件名和扩展名;

eNameWithoutExtension方法 :返回不具有扩展名的路径字符串的文件名;

1 / 4

hRoot方法 :获取指定路径的根目录信息;

lPath方法:获得它的完全限定路径(绝对路径);

e方法:用于合并两个路径,不用烦于处理“”字符;

pPath方法:返回当前系统的临时文件夹的路径;

Rooted方法:用于判断一个路径是绝对路径还是相对路径;

pFileName方法:在当前用户的临时目录下创建一个临时文件,用于获得随机文件名

domFileName方法:它与GetTempFileName方法的不同之处在于它仅仅返回一个字符串但不会创建文件;

Environment. SystemDirectory属性:获取系统目录的完全限定路径;

Environment. GetFolderPath方法:该方法接受的参数类型为lFolder枚举,通过这个方法可以获得大量系统文件夹的路径,如我的电脑,我的电脑,桌面,系统目录等;

Directory类的GetCurrentDirectory和SetCurrentDirectory方法:读取或设置当前目录;

pPath()方法:获取当前应用程序的所在目录;

:获取指定文件是否存在;

,ioin:获取文件的名称和扩展名;

me:获取文件的全限定名称(完整路径);

ory:获取文件所在目录,返回类型为DirectoryInfo;

oryName:获取文件所在目录的路径(完整路径);

:获取文件的大小(字节数);

Only:获取文件是否只读;

utes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合;

onTime、cessTime、iteTime:分别用于获取文件的创建时间、访问时间、修改时间;

utes |= ly;// 添加只读属性

utes &= ~ly;// 移除只读属性

FileVersionInfo类有大量的版本信息相关的属性,通过它的静态方法GetVersionInfo获得该类的一个2 / 4

实例,然后就可以访问指定文 件的版本信息了,如FileVersion表示文件版本号,LegalCopyright表示指定文件的版权声明,CompanyName表示指定文件的 公司名称;

判断两个文件的内容是否相同,可以使用gorithm类为每个文件生成一个哈希码,然后比较两个哈希码是否一致。

///

/// 判断两个文件内容是否一致

///

public static bool IsFilesEqual(string fileName1, string fileName2)

{

using (HashAlgorithm hashAlg = ())

{

using (FileStream fs1 = new FileStream(fileName1, ), fs2 = new

FileStream(fileName2, ))

{

byte[] hashBytes1 = eHash(fs1);

byte[] hashBytes2 = eHash(fs2);

// 比较哈希码

return (ng(hashBytes1) == ng(hashBytes2));

}

}

}

:获取指定目录是否存在;

:获取目录的名称;

me:获取目录的全限定名称(完整路径);

utes:获取或设置指定目录的属性,返回类型为FileAttributes枚举,可以是多个值的组合;

onTime、cessTime、iteTime:分别用于获取目录的创建时间、访问时间、修改时间;

:获取目录的上级目录,返回类型为DirectoryInfo;

3 / 4

:获取目录的根目录,返回类型为DirectoryInfo;

es():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;

ectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找;

DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;

:将现有文件复制到新文件,其重载版本还允许覆盖已存在文件;

:将指定文件移到新位置,并提供指定新文件名的选项,所以可以用来重命名文件(而不改变位置);

:永久删除文件,如果文件不存在,则不执行任何操作;

e:使用当前FileInfo对象对应文件的内容替换目标文件,而且指定另一个文件名作为被替换文件的备份;

:创建指定目录,如果指定路径中有多级目录不存在,该方法会一一创建;

Subdirectory:创建当前对象对应的目录的子目录;

:将目录(及其包含的内容)移动至一个新的目录,也可用来重命名目录;

:删除目录(如果它存在的话)。如果要删除一个包含子目录的目录,要使用它的重载版本,以指定递归删除;

ves():获得计算机的所有逻辑驱动器,返回类型为DriveInfo[];

:获取驱动器的名称(如C:);

ype:获取驱动器的类型(如Fixed,CDRom,Removable,Network等);

ormat:获取驱动器的格式(如NTFS,FAT32,CDFS,UDF等);

y:获取驱动器是否已准备好,比如CD是否已放入CD驱动器,如果驱动器没有准备好,访问其信息会引发IOException类型异常;

bleFreeSpace:获取驱动器的可用空间;

reeSpace:获取驱动器总的可用空间,它与AvailableFreeSpace的不同在于AvailableFreeSpace会磁盘配额的设置;

ize:获取驱动器总的空间;

rectory:获得驱动器的根目录(DirectoryInfo类型);

4 / 4