bool ZipPlatform::GetFileTimes(LPCTSTR lpFileName, time_t* tModificationTime, time_t* tCreationTime, time_t* tLastAccessTime) { WIN32_FIND_DATA findData = {0}; HANDLE handle = ::FindFirstFile(CZipPathComponent::AddPrefix(lpFileName), &findData); if (tModificationTime != NULL) { *tModificationTime = 0; } if (tCreationTime != NULL) { *tCreationTime = 0; } if (tLastAccessTime != NULL) { *tLastAccessTime = 0; } bool ret; if (handle != INVALID_HANDLE_VALUE) { ret = true; if (tModificationTime != NULL && !ConvertFileTimeToTime(findData.ftLastWriteTime, *tModificationTime)) ret = false; if (tCreationTime != NULL && !ConvertFileTimeToTime(findData.ftCreationTime, *tCreationTime)) ret = false; if (tLastAccessTime != NULL && !ConvertFileTimeToTime(findData.ftLastWriteTime, *tLastAccessTime)) ret = false; FindClose(handle); } else ret = false; if (ret == false) { time_t tNow = time(NULL); if (tModificationTime != NULL && *tModificationTime <= 0) { *tModificationTime = tNow; } if (tCreationTime != NULL && *tCreationTime <= 0) { *tCreationTime = tNow; } if (tLastAccessTime != NULL && *tLastAccessTime <= 0) { *tLastAccessTime = tNow; } } return ret; }
time_t CLogFile::GetCreationTime() { if (!ValidateOpen("GetCreationTime")) return 0; BY_HANDLE_FILE_INFORMATION FileInformation; GetFileInformationByHandle(m_hFile, &FileInformation); return ConvertFileTimeToTime(FileInformation.ftCreationTime); }