《获取和设置文件或文件夹属性》由会员分享,可在线阅读,更多相关《获取和设置文件或文件夹属性(2页珍藏版)》请在金锄头文库上搜索。
1、WindowsWindows 文件夹编程文件夹编程第 1 页 共 2 页获取和设置文件或文件夹属性获取和设置文件或文件夹属性摘摘要要: 本文讲解了文件和文件夹属性的获取和设置的一些方法。 实际使用中要注意属性是 通过 32 位的位标识来表示的,不能够直接进行相等等运算。 关键字:关键字:VC文件属性文件属性文件夹属性文件夹属性 GetFileAttributesSetFileAttributes一一获取文件的属性获取文件的属性 获取文件或文件夹属性使用 API 函数 GetFileAttributes。 GetFileAttributes DWORDGetFileAttributes( LPC
2、TSTRlpFileName/ pointer to the name of a file or directory ); 功能:获取文件或文件夹属性 参数:指向文件或文件夹路径 返回值:如果成功返回对应的属性,失败返回 0xFFFFFFFF 文件属性如下: FILE_ATTRIBUTE_ARCHIVE存档文件 FILE_ATTRIBUTE_COMPRESSED压缩文件 FILE_ATTRIBUTE_DIRECTORY文件夹 FILE_ATTRIBUTE_ENCRYPTED加密文件 FILE_ATTRIBUTE_HIDDEN隐藏 FILE_ATTRIBUTE_NORMAL普通没有设置其他属性,
3、就是普通属性 FILE_ATTRIBUTE_OFFLINE脱机 FILE_ATTRIBUTE_READONLY只读 FILE_ATTRIBUTE_REPARSE_POINTReparse Point 属性 FILE_ATTRIBUTE_SPARSE_FILE稀疏文件 FILE_ATTRIBUTE_SYSTEM系统文件 FILE_ATTRIBUTE_TEMPORARY临时文件 属性说明:FILE_ATTRIBUTE_ENCRYPTED加密文件和 FILE_ATTRIBUTE_COMPRESSED 压缩文件并不是指用 WinRar 等压缩软件进行压缩或使 用加密工具加密后的文件,而是由系统自身进行
4、的压缩和加密工作。例如,在某文件夹上右 击,从快捷菜单中选择“属性”会弹出属性对话框,单击“高级”按钮,就弹出高级属性对 话框,可以看到设置压缩或加密属性的地方。WindowsWindows 文件夹编程文件夹编程第 2 页 共 2 页二二判断文件是否具有某属性判断文件是否具有某属性 GetFileAttributes 函数返回值为 DWORD 类型。不能够直接将这个返回值用“=”运算 符来和某个属性比较。如,假设获取某个文件的属性为 dAttribute,直接使用下面的表达式 if(FILE_ATTRIBUTE_HIDDEN=dAttribute)来判断是否具有隐藏属性是错误的。 返回的 DW
5、ORD 类型是一个 32 位的整型。 在表示文件属性时使用了 “位标识” 的方式, 也就是 32 位中,某一位对应某属性,如果该位为 1,表示具有该属性。为 0,就不具有该属 性。因此正确的判断方式如下:假如判断某个路径是否为文件夹,GetFileAttributes 函数返 回值为 dAttribute: if(dAttribute 功能:设置指定文件或文件夹的属性。 参数: LPCTSTRlpFileName指向要修改属性的文件或文件夹路径 DWORD dwFileAttributes新的属性 返回值:属性设置成功返回 TRUE,失败 FALSE。 说明: 此函数仅能够设置如下属性 FIL
6、E_ATTRIBUTE_ARCHIVEFILE_ATTRIBUTE_HIDDEN FILE_ATTRIBUTE_NORMALFILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLYFILE_ATTRIBUTE_TEMPORARY FILE_ATTRIBUTE_SYSTEM 设置某文件具有某属性的步骤:首先用 GetFileAttributes 函数获取文件的当前属性,然 后再将获得的值与新增的属性进行按位或运算,最后才调用 SetFileAttributes 函数设置新的 属性值。例如要为 C:abc.c 文件增加隐藏属性: DWORDdAttribute=GetFileAttributes(“C:abc.c”) ; SetFileAttributes(“SetFileAttributes”,dAttribute|FILE_ATTRIBUTE_HIDDEN ); 如要取消某个属性,dAttribute&FILE_ATTRIBUTE_ARCHIVE本文仅涉及了文件和文件夹基本属性的获取和设置,如要获取文件或文件夹的大小、 创 建时间、修改时间等属性请参考:博客