获取文件最后修改时间的VC代码

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

         很多时候我们需要知道系统是什么时候编译生成的。我想到的一个直接的思路的是获取exe文件的最后修改时间。下面的一段代码可以做到这一点:

  CWinApp* pApp = AfxGetApp();
	std::string strAppName;
	if (NULL!=pApp)
	{
		TCHAR szAppName[MAX_PATH];
		memset(szAppName,'\0',MAX_PATH*sizeof(TCHAR));
		:: GetModuleFileName(pApp->m_hInstance,szAppName, MAX_PATH);
		strAppName = szAppName;
		WIN32_FIND_DATA ffd ;
		HANDLE hFind = FindFirstFile(szAppName,&ffd); 
		SYSTEMTIME st = {0};
		TCHAR szTimeBuf[64] = {0};
		FILETIME LocalFileTimel;
		FileTimeToLocalFileTime(&ffd.ftLastWriteTime, &LocalFileTimel);
		FileTimeToSystemTime(&LocalFileTimel, &st);
		sprintf(szTimeBuf,"%4d-%02d-%02d %02d:%02d:%2d", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond); 
}

          当然如果一个系统的某些dll是动态加载的,即dll修改了但exe还没修改的话,就需要比较dll的修改时间和exe文件的修改时间以确定系统的编译生成时间。




原文地址:https://www.cnblogs.com/lanzhi/p/6470605.html