⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getfilever.cpp

📁 获取文件版本号及最后修改时间的几个函数
💻 CPP
字号:
BOOL GetLastWriteTime(HANDLE hFile, char * lpszString)
{
    FILETIME ftCreate, ftAccess, ftWrite;
    SYSTEMTIME stUTC, stLocal;

    // Retrieve the file times for the file.
    if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
        return FALSE;

    // Convert the last-write time to local time.
    FileTimeToSystemTime(&ftWrite, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);

    // Build a string showing the date and time.
    _stprintf(lpszString, _T("%d-%02d-%02d %02d:%02d:%02d"),
        stLocal.wYear, stLocal.wMonth, stLocal.wDay,
        stLocal.wHour, stLocal.wMinute, stLocal.wSecond);

    return TRUE;
}

TCHAR * GetFileLastModify(TCHAR * szFileName, TCHAR * szLastModify)
{
	HANDLE hFile = CreateFile(szFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING,0,NULL);

	if (hFile == INVALID_HANDLE_VALUE)
		return _T("");
		
	if(	!GetLastWriteTime( hFile, szLastModify))
	{
		CloseHandle(hFile);
		return _T("");
	}
	CloseHandle(hFile);
	return szLastModify;
}

TCHAR * GetFileVer(TCHAR * szFileName, TCHAR *  szSubBlock, TCHAR *  szVerInfo)
{
	LANGANDCODEPAGE * lpTranslate;
	DWORD dwHandle,InfoSize;
	CString strVersion;
	
	//首先获得版本信息资源的长度
	InfoSize = GetFileVersionInfoSize(szFileName, &dwHandle);
	
	//将版本信息资源读入缓冲区
	if(InfoSize == 0) 
		return _T("");
	
	TCHAR * InfoBuf = new char[InfoSize];
	if(!GetFileVersionInfo(szFileName, 0, InfoSize, InfoBuf))
	{
		delete [] InfoBuf;
		return _T("");
	}
	//获得生成文件使用的代码页及文件版本
	unsigned int  cbTranslate = 0;
	VerQueryValue(InfoBuf, _T("\\VarFileInfo\\Translation"), (LPVOID*)&lpTranslate, &cbTranslate);
	
	TCHAR  SubBlock[256];
	_stprintf( SubBlock, _T("\\StringFileInfo\\%04x%04x\\%s"), 
						lpTranslate[0].wLanguage,
						lpTranslate[0].wCodePage,
						szSubBlock);
	void * lpBuffer = NULL;
	unsigned int dwBytes = 0;
	VerQueryValue(InfoBuf, SubBlock, &lpBuffer, &dwBytes); 
	_tcscpy(szVerInfo, (TCHAR *)lpBuffer);
	
	delete [] InfoBuf;
	
	return (TCHAR *)szVerInfo;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -