在获取文件属性的时候有以下几种方式: 一、使用CFileDialog类,对于选中的文件可以是通过GetPathName,GetFileName,GetFileTitle,GetFileExt函数类获取文件的全名称,文件名,标题名以及文件类型;
二、使用_stat函数:
struct
stat st;
//stat("d:\\D ", &st); //返回16895 文件夹
_
stat(
"d:\\testm.m "
, &st);
//返回33206 文件
stat结构体中可以知道该路径下的是文件还是文件夹,可以知道文件的创建时间、最后一次修改时间、最后一次访问时间、文件所在的磁盘符、文件的大小 三、使用FindFirstFile和FindClose:
WIN32_FIND_DATA FindFileData;
//获取文件属性信息
memset(&FindFileData, 0x00, sizeof(WIN32_FIND_DATA));
FindClose(FindFirstFile(strName,&FindFileData));
WIN32_FIND_DATA 结构体可以获取文件的属性、文件创建时间、最后一次访问时间、最后一次修改时间、文件大小的高字节、文件大小的低字节以及文件名。
通过该方式获取的文件相关时间是以FILETIME结构体的格式存储的,要将其转换为本地时间或系统时间才可以使用,转换方式如下:
SYSTEMTIME systime = {0};
FILETIME localtime;
memset(&localtime, 0x00, sizeof(FILETIME));
FileTimeToLocalFileTime(&FindFileData.ftLastWriteTime,&localtime);
FileTimeToSystemTime(&localtime,&systime);
strName.Format(_T("%.4d-%.2d-%.2d %.2d:%.2d:%.2d"), systime.wYear, systime.wMonth, systime.wDay, systime.wHour, systime.wMinute, systime.wSecond);