【发布时间】:2014-07-16 15:05:50
【问题描述】:
我想获取 pdf 文件的最后写入日期作为时间戳,但 pdf 文件在内存中,由 char* 指向。
在这段代码的中间,你可以看到下载和组装/存储在一个 char* packet 中的所有文件段,我想从 packet 获取 pdf 文件的信息:
void ProcessSegmt(const uint8 *pSeg, uint32 iSegLen)
{
char* pFile;
char* packet = m_packet_;
if( iSegLen != 0 ) // flush work buffers
{
if ( offset == 0 )
{
memset(header, 0, sizeof header);
pFile = strstr (GetFilename(), "\x5C"); //finds \ for directory
sprintf(header, "\t%s\t%d\t", ++pFile, nDownloadFileSize);
memset(packet, 0, MAX_BUF+MAX_HEADER);
memcpy(packet, header, strlen(header));
}
if ( offset + iSegLen < nDownloadFileSize ) // part of file downloaded
{
memcpy( packet+strlen(header) + offset, pSeg, iSegLen );
offset += iSegLen;
Logger->root()->info("Downloaded file: %s, already %d bytes, left %d bytes", 10, GetFilename(), offset,
nDownloadFileSize - offset);
}
else if ( offset + iSegLen == nDownloadFileSize )
{
// all downloaded
memcpy( packet+strlen(header)+offset, pSeg, iSegLen );
offset = 0;
Logger->root()->info("Downloaded entire contents of file: %s", 10, GetFilename());
// !!!!!!!
// all segements downloaded(in packet), i want get timestamp here
// !!!!!!!
}
else
{
offset = 0;
Logger->root()->info("Error downloading file: %s", 11, GetFilename());
}
}
}
【问题讨论】:
标签: c++ visual-c++ visual-c++-6