| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 
 | 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); |