请教WriteFile函数如何使用,能否列举个例子,谢谢

解决方案 »

  1.   

    HANDLE hFile; 
     
    HANDLE hAppend; 
     
    DWORD  dwBytesRead, dwBytesWritten, dwPos; 
     
    char   buff[4096]; 
     
    // Open the existing file. 
     
    hFile = CreateFile("ONE.TXT",     // open ONE.TXT 
        GENERIC_READ,                 // open for reading 
        0,                            // do not share 
        NULL,                         // no security 
        OPEN_EXISTING,                // existing file only 
        FILE_ATTRIBUTE_NORMAL,        // normal file 
        NULL);                        // no attr. template if (hFile == INVALID_HANDLE_VALUE) 

        ErrorHandler("Could not open ONE.");  // process error 

     
    // Open the existing file, or if the file does not exist, 
    // create a new file. 
     
    hAppend = CreateFile("TWO.TXT",   // open TWO.TXT 
        GENERIC_WRITE,                // open for writing 
        0,                            // do not share 
        NULL,                         // no security 
        OPEN_ALWAYS,                  // open or create 
        FILE_ATTRIBUTE_NORMAL,        // normal file 
        NULL);                        // no attr. template if (hAppend == INVALID_HANDLE_VALUE) 

        ErrorHandler("Could not open TWO.");    // process error 

     
    // Append the first file to the end of the second file. 
    // Lock the second file to prevent another process from 
    // accessing it while writing to it. Unlock the 
    // file when writing is finished. 
     
    do 

        if (ReadFile(hFile, buff, 4096, &dwBytesRead, NULL)) 
        { 
            dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END); 
            LockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
            WriteFile(hAppend, buff, dwBytesRead, 
                &dwBytesWritten, NULL); 
            UnlockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
        } 
    } while (dwBytesRead == 4096); 
     
    // Close both files.
     
    CloseHandle(hFile); 
    CloseHandle(hAppend); 
    木有msdn的日子没法过~~
      

  2.   

    BOOL WriteFile( 
      HANDLE hFile, 
      LPCVOID lpBuffer, 
      DWORD nNumberOfBytesToWrite, 
      LPDWORD lpNumberOfBytesWritten, 
      LPOVERLAPPED lpOverlapped
    ); 函数声明#include <windows.h>
    #include <stdio.h>#define BUFSIZE 4096int main()
    {
        HANDLE hFile;
        HANDLE hTempFile; 
        DWORD  dwBytesRead, dwBytesWritten, dwBufSize=BUFSIZE;
        char szTempName[MAX_PATH];
        char buffer[BUFSIZE]; 
        char lpPathBuffer[BUFSIZE];
     
        // Open the existing file. 
     
        hFile = CreateFile("original.txt",  // file name 
            GENERIC_READ,                   // open for reading 
            0,                              // do not share 
            NULL,                           // default security 
            OPEN_EXISTING,                  // existing file only 
            FILE_ATTRIBUTE_NORMAL,          // normal file 
            NULL);                          // no template 
        if (hFile == INVALID_HANDLE_VALUE) 
        { 
            printf("Could not open file.");
            return 0;
        } 
     
        // Get the temp path    GetTempPath(dwBufSize,   // length of the buffer
             lpPathBuffer);      // buffer for path     // Create a temporary file. 
        
        GetTempFileName(lpPathBuffer, // directory for temp files 
            "NEW",                    // temp file name prefix 
            0,                        // create unique name 
            szTempName);              // buffer for name     hTempFile = CreateFile((LPTSTR) szTempName,  // file name 
            GENERIC_READ | GENERIC_WRITE, // open for read/write 
            0,                            // do not share 
            NULL,                         // default security 
            CREATE_ALWAYS,                // overwrite existing file
            FILE_ATTRIBUTE_NORMAL,        // normal file 
            NULL);                        // no template     if (hTempFile == INVALID_HANDLE_VALUE) 
        { 
            printf("Could not create temporary file."); 
            return 0;
        } 
     
        // Read 4K blocks to the buffer. 
        // Change all characters in the buffer to upper case. 
        // Write the buffer to the temporary file. 
     
        do 
        {
            if (ReadFile(hFile, buffer, 4096, 
                &dwBytesRead, NULL)) 
            { 
                CharUpperBuff(buffer, dwBytesRead); 
      
                WriteFile(hTempFile, buffer, dwBytesRead, 
                    &dwBytesWritten, NULL); 
            } 
        } while (dwBytesRead == BUFSIZE); 
     
        // Close both files. 
     
        CloseHandle(hFile); 
        CloseHandle(hTempFile); 
     
        // Move the temporary file to the new text file.
     
        if (!MoveFileEx(szTempName, "allcaps.txt", MOVEFILE_REPLACE_EXISTING)) 
        { 
            printf("Could not move temp file.");
            return 0;
        }
    }
    典型的文件操作都有
      

  3.   

    /* HANDLE hFile;
    hFile=CreateFile("5.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,
    FILE_ATTRIBUTE_NORMAL,NULL);
    DWORD dwWrites;
    WriteFile(hFile,"http://www.sunxin.org",strlen("http://www.sunxin.org"),
    &dwWrites,NULL);
    CloseHandle(hFile);*/
      

  4.   

    这些问题,直接查msdn就ok