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


发布评论