回 帖 发 新 帖 刷新版面

主题:文件的读写问题

在一个循环中,我用CreateFile,WriteFile和CloseHande函数建立一系列文件,为什么新建的文件在资源管理器中文件不是一个一个的显示出来,而是要等到循环结束,所有的文件都完成才一起显示?[em10]

for(i=lpginfo->nSelectedStart;i<=lpginfo->nSelectedEnd;i++)
{
    nFileStart = i/nStackTrace- lpginfo->nStackNum +1;
    if(nFileStart < 0) nFileStart =0;
    nFileEnd = i / nStackTrace;
    if(nFileEnd >= lpginfo->nFileCount) nFileEnd = lpginfo->nFileCount-1;    
    nStartIndex = i-nFileEnd*nStackTrace;
    rOffset2 = rOffset1+rSpacing1*nStartIndex;
    seishd.nOffsetInt = (int)rOffset2;
    seishd.nOffsetDec = (int)((rOffset2-seishd.nOffsetInt)*100.0);
    seishd.nRecordNum = lpginfo->iDigitsValue2+(i-lpginfo->nSelectedStart)*lpginfo->nIncrement2;
    seishd.nTraceCount = nFileEnd-nFileStart+1;
    while(nFileEnd > nFileRead)
    {
        nFileRead++;
        wsprintf(lpFileName,lpginfo->lpFmtFile1,lpginfo->iDigitsValue1+nFileRead*lpginfo->nIncrement1);
        result = MyReadFile(lpFileName,(LPVOID)(lpMemory+(nFileRead%lpginfo->nStackNum)*nBaseSize2),512,nBaseSize2);
        if(!result) break;
     }
     if(!result) break;            
     wsprintf(lpFileName,lpginfo->lpFmtFile2,seishd.nRecordNum);
     hFile = CreateFile(lpFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
     if(hFile == INVALID_HANDLE_VALUE) {result = FALSE; break;}
     WriteFile(hFile,(LPVOID)&seishd,sizeof(SEISHEADER),&nBytesWritten,NULL);
     SetFilePointer(hFile,512,NULL,FILE_BEGIN);
     for(j=0;j<seishd.nTraceCount;j++)
     {
     nMemoryOffset = ((nFileEnd-j)%lpginfo->nStackNum)*nBaseSize2+(nStartIndex+j*nStackTrace)*nBaseSize1;
      WriteFile(hFile,(LPVOID)(lpMemory+nMemoryOffset),nBaseSize1,&nBytesWritten,NULL);
      }
      CloseHandle(hFile);
}

回复列表 (共1个回复)

沙发

原来要按F5刷新,才看得到

我来回复

您尚未登录,请登录后再回复。点此登录或注册