Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
time_t CLogFile::GetCreationTime()
{
    if (!ValidateOpen("GetCreationTime"))
        return 0;

    BY_HANDLE_FILE_INFORMATION FileInformation;
    GetFileInformationByHandle(m_hFile, &FileInformation);
    return ConvertFileTimeToTime(FileInformation.ftCreationTime);
}