vc关于文件版本号,访问时间 修改时间

该博客介绍了在VC++中如何获取文件的版本信息和最后修改时间。通过`GetFileVersionInfoSize`、`GetFileVersionInfo`及`VerQueryValue`函数获取文件版本号,使用`FindFirstFile`、`FileTimeToSystemTime`和`SystemTimeToTzSpecificLocalTime`获取文件的修改时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CString GetFileVersion(char*  FileName)  
{     
    int   iVerInfoSize;  
    char   *pBuf;  
    CString   asVer="";  
    VS_FIXEDFILEINFO   *pVsInfo;  
    unsigned   int   iFileInfoSize   =   sizeof(   VS_FIXEDFILEINFO   );  
      
      
    iVerInfoSize   =   GetFileVersionInfoSize(FileName,NULL);   
      
    if(iVerInfoSize!= 0)  
    {     
        pBuf   =   new   char[iVerInfoSize];  
        if(GetFileVersionInfo(FileName,0,   iVerInfoSize,   pBuf   )   )     
        {     
            if(VerQueryValue(pBuf,   "//",(void    **)&pVsInfo,&iFileInfoSize))     
            {     
                asVer.Format("%d.%d.%d.%d",HIWORD(pVsInfo->dwFileVersionMS),LOWORD(pVsInfo->dwFileVersionMS),HIWORD(pVsInfo->dwFileVersionLS),LOWORD(pVsInfo->dwFileVersionLS));  
            }     
        }     
        delete   pBuf;     
    }     
    return   asVer;     
}   
CString GetFileVersion(char*  FileName)
{  
 int   iVerInfoSize;
 char   *pBuf;
 CString   asVer="";
 VS_FIXEDFILEINFO   *pVsInfo;
 unsigned   int   iFileInfoSize   =   sizeof(   VS_FIXEDFILEINFO   );
   
   
 iVerInfoSize   =   GetFileVersionInfoSize(FileName,NULL);
   
 if(iVerInfoSize!= 0)
 {  
  pBuf   =   new   char[iVerInfoSize];
  if(GetFileVersionInfo(FileName,0,   iVerInfoSize,   pBuf   )   )  
  {  
   if(VerQueryValue(pBuf,   "//",(void    **)&pVsInfo,&iFileInfoSize))  
   {  
    asVer.Format("%d.%d.%d.%d",HIWORD(pVsInfo->dwFileVersionMS),LOWORD(pVsInfo->dwFileVersionMS),HIWORD(pVsInfo->dwFileVersionLS),LOWORD(pVsInfo->dwFileVersionLS));
   }  
  }  
  delete   pBuf;  
 }  
 return   asVer;  

获取路径:

view plaincopy to clipboardprint?
CString GetCurrentAppDirectory()  
{  
    char szFile[MAX_PATH];  
    char szPath[MAX_PATH];  
    GetModuleFileName(NULL,szFile,MAX_PATH);  
    size_t i;  
    for(i=strlen(szFile)-1; i>0 && szFile[i]!='//'; i--);  
    szFile[i]='/0';  
    strcpy(szPath,szFile);   
    return (szPath);  

CString GetCurrentAppDirectory()
{
 char szFile[MAX_PATH];
 char szPath[MAX_PATH];
 GetModuleFileName(NULL,szFile,MAX_PATH);
 size_t i;
 for(i=strlen(szFile)-1; i>0 && szFile[i]!='//'; i--);
 szFile[i]='/0';
 strcpy(szPath,szFile);
 return (szPath);
}

获取修改时间:

view plaincopy to clipboardprint?
CString GetModifyTime(CString appname)  
{  
    WIN32_FIND_DATA ffd ;  
    HANDLE hFind = FindFirstFile(appname,&ffd);  
    SYSTEMTIME stUTC, stLocal;  
    FileTimeToSystemTime(&(ffd.ftLastWriteTime), &stUTC);  
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);  
    CString strTmp;  
    strTmp.Format("%d-%d-%d,%d:%d", stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute);  
    //--      
    return strTmp;  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值