一、 判断文件是存在
GetFileAttributes( m_Output) == -1 //判断文件是否存在若不存在返回-1
返回字段 | 返回值 | 属性类型 |
FILE_ATTRIBUTE_READONLY | 1 | 只读 |
FILE_ATTRIBUTE_HIDDEN | 2 | 隐藏 |
FILE_ATTRIBUTE_SYSTEM | 4 | 系统 |
FILE_ATTRIBUTE_DIRECTORY | 16 | 目录 |
FILE_ATTRIBUTE_ARCHIVE | 32 | 存档 |
FILE_ATTRIBUTE_DEVICE | 64 | 保留 |
FILE_ATTRIBUTE_NORMAL | 128 | 正常 |
FILE_ATTRIBUTE_TEMPORARY | 256 | 临时 |
FILE_ATTRIBUTE_SPARSE_FILE | 512 | 稀疏文件 |
FILE_ATTRIBUTE_REPARSE_POINT | 1024 | 超链接或快捷方式 |
FILE_ATTRIBUTE_COMPRESSED | 2048 | 压缩 |
FILE_ATTRIBUTE_OFFLINE | 4096 | 脱机 |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | 8192 | 索引 |
FILE_ATTRIBUTE_ENCRYPTED | 16384 | 加密 |
FILE_ATTRIBUTE_VIRTUAL | 65536 | 虚拟 |
橙色标记的属性为 Windows 系统中文件的公有属性,其中 “ 只读 ” 、 “ 隐藏 ” 、 “ 系统 ” 、 “ 存档 ” 为文件的四种基本属性。 compressed , content_indexed , encrypted 只存在于 NTFS 分区中。
文件去掉全部属性后(四种基本属性),将自动标记为 normal 。同时具有 system 和 hidden 属性的文件会在系统中彻底隐形,这也是病毒常用的伎俩。
commpressed 和 encrypted 不能共存。默认情况下文件有 content_indexed 属性。
二、获取文件大小
ULONGLONG size;
CFileStatus fileStatus;
//文件绝对路径
if (CFile::GetStatus(m_Output, fileStatus))
size = fileStatus.m_size;