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();
}
Beispiel #2
0
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 << "\")";
}
Beispiel #3
0
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);
    }
}