void CTempFiles::DeleteOldTempFiles(LPCTSTR wildCard) { DWORD len = ::GetTempPath(0, nullptr); auto path = std::make_unique<TCHAR[]>(len + 100); len = ::GetTempPath (len+100, path.get()); if (len == 0) return; CSimpleFileFind finder = CSimpleFileFind(path.get(), wildCard); FILETIME systime_; ::GetSystemTimeAsFileTime(&systime_); __int64 systime = (__int64)systime_.dwLowDateTime | (__int64)systime_.dwHighDateTime << 32LL; while (finder.FindNextFileNoDirectories()) { CString filepath = finder.GetFilePath(); FILETIME createtime_ = finder.GetCreateTime(); __int64 createtime = (__int64)createtime_.dwLowDateTime | (__int64)createtime_.dwHighDateTime << 32LL; createtime += 864000000000LL; //only delete files older than a day if (createtime < systime) { ::SetFileAttributes(filepath, FILE_ATTRIBUTE_NORMAL); ::DeleteFile(filepath); } } }