获取文件夹的信息(时间)

//#include <windows.h>
//#include <tchar.h> 
//#include <stdio.h>
//#include<string> 
#include <atlstr.h>

//创建时间、修改时间、访问时间
BOOL GetDirTime(CString DirName)
{
    // 打开文件夹
    HANDLE hDir = CreateFile ( DirName, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 
                               FILE_FLAG_BACKUP_SEMANTICS, NULL);

    FILETIME lpCreationTime; // 文件夹的创建时间
    FILETIME lpLastAccessTime; // 对文件夹的最近访问时间
    FILETIME lpLastWriteTime; // 文件夹的最近修改时间

    // 获取文件夹时间属性信息
    if (GetFileTime(hDir, &lpCreationTime, &lpLastAccessTime, &lpLastWriteTime))
    {
        FILETIME fCreat;
        FILETIME fAccess;
        FILETIME fWrite;

        //转换成本地时间
        FileTimeToLocalFileTime(&lpCreationTime, &fCreat);
        FileTimeToLocalFileTime(&lpLastWriteTime, &fAccess); 
        FileTimeToLocalFileTime(&lpLastAccessTime, &fWrite);

        SYSTEMTIME sCreat;
        SYSTEMTIME sAccess;
        SYSTEMTIME sWrite;

        //转换成系统时间
        FileTimeToSystemTime(&fCreat, &sCreat);
        FileTimeToSystemTime(&fAccess, &sAccess);
        FileTimeToSystemTime(&fWrite, &sWrite);


        printf("文件夹创建时间: %d%d%d%d:%d:%d\n",sCreat.wYear,sCreat.wMonth,sCreat.wDay,sCreat.wHour,sCreat.wMinute,sCreat.wSecond);
        printf("文件夹最近访问时间: %d%d%d%d:%d:%d\n",sAccess.wYear, sAccess.wMonth, sAccess.wDay, sAccess.wHour,sAccess.wMinute,sAccess.wSecond);
        printf("文件夹最近修改时间: %d%d%d%d:%d:%d\n",sWrite.wYear, sWrite.wMonth, sWrite.wDay, sWrite.wHour,sWrite.wMinute,sWrite.wSecond);
    }
    CloseHandle(hDir); // 关闭打开过的文件夹

    return true;
}



int main(void)
{

    //文件夹路径
    CString DirPath = "C:\\Users\\Administrator\\Desktop\\测试文件夹";

    if( GetDirTime(DirPath ) ) 
        printf("Succeed!");
    else
        printf("false!");
    //GetDirSize(DirPath);

    getchar();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u011125673/article/details/50586755
今日推荐