获得文件属性
来源:互联网 发布:齐鲁商品软件下载 编辑:程序博客网 时间:2024/04/29 09:28
#include "string"using namespace std;typedef struct stFilePro {wstring strComments;wstring strProductName;wstring strInternalName;wstring strProductVersion;wstring strSpecialBuild;}STFILEPRO, *pSTFILEPRO;BOOL GetFileProperty(wchar_t* wcFilPath, STFILEPRO& stFilePro){//Language code struct.struct LANGANDCODEPAGE {WORD wLanguage;WORD wCodePage;} *TranslationPtr;DWORD dwSize = 0;BOOL bRet = TRUE;BOOL bTmpRet = FALSE;UINT uInfoSize = 0;LPVOID infoPtr = NULL;wchar_t* pVerInfo = NULL;//Get version info size.dwSize = GetFileVersionInfoSize(wcFilPath, NULL);LPVOID pInfoData = malloc(dwSize);if ( dwSize > 0 ){//Get Version info.bTmpRet = GetFileVersionInfo(wcFilPath, NULL, dwSize, pInfoData);if ( bTmpRet ){//Get language code.bTmpRet = VerQueryValue(pInfoData, L"\\VarFileInfo\\Translation", (LPVOID*)&TranslationPtr, &uInfoSize);if ( bTmpRet ){wchar_t wcCommentsInfo[100] = {0};wchar_t wcProductNameInfo[100] = {0};wchar_t wcProductVersionInfo[100] = {0};wchar_t wcInternalNameInfo[100] = {0};wchar_t wcSpecialBuildInfo[100] = {0};//Format string.wsprintf(wcProductNameInfo, L"\\StringFileInfo\\%04x%04x\\ProductName",TranslationPtr[0].wLanguage, TranslationPtr[0].wCodePage);wsprintf(wcProductVersionInfo, L"\\StringFileInfo\\%04x%04x\\ProductVersion",TranslationPtr[0].wLanguage, TranslationPtr[0].wCodePage);wsprintf(wcInternalNameInfo, L"\\StringFileInfo\\%04x%04x\\InternalName",TranslationPtr[0].wLanguage, TranslationPtr[0].wCodePage);wsprintf(wcCommentsInfo, L"\\StringFileInfo\\%04x%04x\\Comments",TranslationPtr[0].wLanguage, TranslationPtr[0].wCodePage);wsprintf(wcSpecialBuildInfo, L"\\StringFileInfo\\%04x%04x\\SpecialBuild",TranslationPtr[0].wLanguage, TranslationPtr[0].wCodePage);//Get comments.bTmpRet = VerQueryValue(pInfoData, wcCommentsInfo, (LPVOID*)&infoPtr, &uInfoSize);if ( !bTmpRet ){//bRet = FALSE;}else{pVerInfo = (wchar_t*)infoPtr;stFilePro.strComments = pVerInfo;infoPtr = NULL;}//Get internalname.bTmpRet = VerQueryValue(pInfoData, wcInternalNameInfo, (LPVOID*)&infoPtr, &uInfoSize);if ( !bTmpRet ){//bRet = FALSE;}else{pVerInfo = (wchar_t*)infoPtr;stFilePro.strInternalName = pVerInfo;infoPtr = NULL;}//Get productname.bTmpRet = VerQueryValue(pInfoData, wcProductNameInfo, (LPVOID*)&infoPtr, &uInfoSize);if ( !bTmpRet ){//bRet = FALSE;}else{pVerInfo = (wchar_t*)infoPtr;stFilePro.strProductName = pVerInfo;infoPtr = NULL;}//Get productversion.bTmpRet = VerQueryValue(pInfoData, wcProductVersionInfo, (LPVOID*)&infoPtr, &uInfoSize);if ( !bTmpRet ){//bRet = FALSE;}else{pVerInfo = (wchar_t*)infoPtr;stFilePro.strProductVersion = pVerInfo;infoPtr = NULL;}//Get specialbuild.bTmpRet = VerQueryValue(pInfoData, wcSpecialBuildInfo, (LPVOID*)&infoPtr, &uInfoSize);if ( !bTmpRet ){//bRet = FALSE;}else{pVerInfo = (wchar_t*)infoPtr;stFilePro.strSpecialBuild = pVerInfo;infoPtr = NULL;}}else{bRet = FALSE;}}else{bRet = FALSE;}}else{bRet = FALSE;}free(pInfoData);pInfoData = NULL;return bRet;}
0 0
- 获得文件属性
- delphi - 获得文件属性
- C/C++如何获得文件属性
- 获得文件属性的函数调用实例
- 文件属性
- 文件属性
- 文件属性
- 文件属性
- 文件属性
- 文件属性
- 文件属性
- C#中,如何获得或设置文件属性(Attributes)
- 获得一个目录下的文件名及文件属性
- 获得Windows系统中文件属性——GetFileAttributes详解
- 获得Windows系统中文件属性——GetFileAttributes详解
- 获得Windows系统中文件属性——GetFileAttributes详解
- Linux下获得文件属性及文件结构体的使用
- 设置文件属性
- 往avd里装软件
- 禁用Clusterware在系统启动后自动启动
- membership(1)---理论篇
- [ZT]CISCO交换机配置操作学习
- 谷歌分析中的营销归因分析功能
- 获得文件属性
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系
- 注册 CrashHandler crashHandler = CrashHandler.getInstance();
- MATLAB符号变量赋值
- cookie实现多少天免登录
- Visual Studio 2013在写c语言时报错
- Js数组去重复效率
- c语言简单选择排序
- 空指针、零指针、野指针