int overwrite(string file, __int64 fsize, __time64_t fmod = NULL){ char buffer[512]; char buffer2[256]; dOverwrite _dOverwrite; _dOverwrite.Create(IDD_OVERWRITE); HICON ico; //_dOverwrite.ShowWindow(SW_SHOW); //_dOverwrite.BeginModalState(); sprintf(buffer, loadString(IDS_FILE_ALREADY_EXISTS), file.c_str()); _dOverwrite.sOverwrite.SetWindowText(buffer); struct _finddatai64_t c_file; long hFile; if((hFile = _findfirsti64(file.c_str(), &c_file)) == -1L){ //file doesn't exist? }else{ strcpy(buffer2, convertUnits(c_file.size)); sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2); _dOverwrite.sOriginalSize.SetWindowText(buffer); _ctime64_s(buffer2, sizeof(buffer2), &c_file.time_write); sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2); _dOverwrite.sOriginalMod.SetWindowText(buffer); ico = getIcon(file); _dOverwrite.iOld.SetIcon(ico); } //new file strcpy(buffer2, convertUnits(fsize)); sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2); _dOverwrite.sNewSize.SetWindowText(buffer); if(fmod != NULL){ _ctime64_s(buffer2, sizeof(buffer2), &fmod); sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2); }else{ sprintf(buffer, loadString(IDS_OVERWRITE_MOD), ""); } _dOverwrite.sNewMod.SetWindowText(buffer); _dOverwrite.iNew.SetIcon(ico); _dOverwrite.ShowWindow(SW_SHOW); _dOverwrite.bYes.SetButtonStyle(BS_DEFPUSHBUTTON); _dOverwrite.bYesAll.SetButtonStyle(_dOverwrite.bYesAll.GetButtonStyle() & ~BS_DEFPUSHBUTTON); return _dOverwrite.RunModalLoop();//_dOverwrite.DoModal(); }
CDumpContext& AFXAPI operator <<(CDumpContext& dc, CTime time) { char psz[32]; psz[0] = '\0'; __time64_t tmp = time.GetTime(); errno_t err = _ctime64_s(psz, sizeof(psz), &tmp); if ((err != 0) || (psz[0] == '\0') || (time.GetTime() == 0)) { return dc << "CTime(invalid #" << time.GetTime() << ")"; } // format it return dc << "CTime(\"" << psz << "\")"; }
void DumpFileToLog( char* path ) { FILE* fp; char buf[BUFFER_SIZE]; char* p; fp = fopen_unsafe(path, "r"); if (fp == NULL) { LogError("ERROR: DumpFileToLog couldn't open file '%s' with error '%s'", path, strerror_unsafe(errno)); } else { int fd = _fileno(fp); struct _stat64 fileStats; if (fd != -1 && _fstat64(fd, &fileStats) != -1) { char creationTime[256]; char accessTime[256]; char currTime[256]; __time64_t now = _time64(NULL); _ctime64_s(currTime, &now); _ctime64_s(creationTime, &fileStats.st_ctime); _ctime64_s(accessTime, &fileStats.st_atime); auto stripNewline = [](char *buf) { if (char *ptr = strchr(buf, '\n')) *ptr = '\0'; }; stripNewline(creationTime); stripNewline(accessTime); stripNewline(currTime); LogOut("ERROR: name of output file: %s; size: %I64d; creation: %s, last access: %s, now: %s", path, fileStats.st_size, creationTime, accessTime, currTime); } if (!FNoProgramOutput) { bool printlines = !FOnlyAssertOutput; if (printlines) { LogOut("ERROR: bad output file follows ============"); } while (fgets(buf, BUFFER_SIZE, fp) != NULL) { // Strip the newline, since LogOut adds one p = strchr(buf, '\n'); if (p != NULL) { *p = '\0'; } if (!printlines && strlen(buf) > 8 && buf[0] == 'A' && buf[1] == 'S' && buf[2] == 'S' && buf[3] == 'E' && buf[4] == 'R' && buf[5] == 'T') { printlines = true; LogOut("ERROR: bad output file follows ============"); } if (printlines) { LogOut("%s", buf); } } if (printlines) { LogOut("ERROR: end of bad output file ============"); } } fclose(fp); } }