獲取檔案的版本資訊和修改時間

2021-06-25 15:01:36 字數 2501 閱讀 8440

cfile file;

bool bfile = file.open(cspath, cfile::moderead);

if ( !bfile )

cfilestatus status;

file.getstatus(status);

char szcreatetime[24];

int nreturn = sprintf(szcreatetime,("%04d-%02d-%02d %02d:%02d:%02d.000"),

status.m_ctime.getyear(), status.m_ctime.getmonth(), status.m_ctime.getday(),

status.m_ctime.gethour(), status.m_ctime.getminute(), status.m_ctime.getsecond());

char szaccesstime[24];

nreturn = sprintf(szaccesstime,("%04d-%02d-%02d %02d:%02d:%02d.000"),

status.m_atime.getyear(), status.m_atime.getmonth(), status.m_atime.getday(),

status.m_atime.gethour(), status.m_atime.getminute(), status.m_atime.getsecond());

char szmodifytime[24];

nreturn = sprintf(szmodifytime,("%04d-%02d-%02d %02d:%02d:%02d.000"),

status.m_mtime.getyear(), status.m_mtime.getmonth(), status.m_mtime.getday(),

status.m_mtime.gethour(), status.m_mtime.getminute(), status.m_mtime.getsecond());

file.close();

注意標紅的語句,這是個大坑。

dword dwsize = 0;

int nwsize= getfileversioninfosizeex(file_ver_get_localised, cspath.getbuffer(cspath.getlength()), null);

cspath.releasebuffer();

在未呼叫file.close();前,getfileversioninfosizeex()的返回值始終是0,用getlasterror()取得的錯誤**是1812,the specified image file did not contain a resource section.在這個地方花了半天時間,查閱各種資料,也未能找到原因,但是當單獨呼叫getfileversioninfosizeex卻又能成功,仔細往前面檢查**,發現檔案開啟了,但是卻沒有關閉,於是有譜了,估計問題出在這個地方,於是在呼叫這個方法之前就先將檔案close,謝天謝地,就是這個問題!

細節,要注意細節啊!

if ( nwsize > 0 )

memset(szbuffer,0,nwsize);

if(!getfileversioninfo(cspath.getbuffer(cspath.getlength()),0,nwsize,(pvoid)szbuffer))

cspath.releasebuffer();

unsigned int nversionlen;

vs_fixedfileinfo* pvs_fixedfileinfo;

verqueryvalue(szbuffer,

text("\\"),

(lpvoid*)&pvs_fixedfileinfo,

&nversionlen);

cstring filestr;

vs_fixedfileinfo vsffi = *pvs_fixedfileinfo;

filestr.format(_t("%u.%u.%u.%u"),

hiword(vsffi.dwfileversionms),

loword(vsffi.dwfileversionms),

hiword(vsffi.dwfileversionls),

loword(vsffi.dwfileversionls) );

cstring productstr;

productstr.format(_t("%u.%u.%u.%u"),

hiword(vsffi.dwproductversionms),

loword(vsffi.dwproductversionms),

hiword(vsffi.dwproductversionls),

loword(vsffi.dwproductversionls) );

}

記錄於此。

php獲取檔案建立時間 修改時間

filemtime string filename 返回檔案上次被修改的時間,出錯時返回 false。時間以 unix 時間戳的方式返回,可用於 date filectime string filename 返回檔案上次 inode 被修改的時間,如果出錯則返回 false。時間以 unix 時間戳...

Linux獲取檔案最後修改時間

使用ll指令檢視檔案資訊 root localhost urldata ll xsb90.txt rw rw r 1 zabbix zabbix 1660151 8月 1512 16 xsb90.txt其中包含檔案的最後修改時間,可以使用awk指令獲取其中的修改時間 root localhost u...

python 遍歷檔案 獲取檔案修改時間

示例如下 coding utf 8 import os import sys import time reload sys sys.setdefaultencoding utf8 path u d vpn 資料倉儲儲存過程修改備份 for root,dir,files in os.walk path...