Share via


Read/Write Example (Windows Embedded CE 6.0)

1/6/2010

The following code example shows how to append one file to the end of another file. In the example, the CreateFile function opens two text files: One.txt for reading and Two.txt for writing. Then, the ReadFile and the WriteFile functions append the contents of One.txt to the end of Two.txt by reading and writing 4-KB blocks.

void AppendExample (void)
{
   HANDLE hFile, hAppend;
   DWORD dwBytesRead, dwBytesWritten, dwPos;
   char buff[4096];
   TCHAR szMsg[1000];
   // Open the existing file.
   hFile = CreateFile (TEXT("\\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 template file
   if (hFile == INVALID_HANDLE_VALUE)
   {
      // Your error-handling code goes here.
      wsprintf (szMsg, TEXT("Could not open ONE.TXT"));
      return;
   }
   // Open the existing file, or, if the file does not exist,
   // create a new file.
   hAppend = CreateFile (TEXT("\\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 template file
   if (hAppend == INVALID_HANDLE_VALUE)
   {
      wsprintf (szMsg, TEXT("Could not open TWO.TXT"));
      CloseHandle (hFile);            // Close the first file.
      return;
   }
   // Append the first file to the end of the second file.
   dwPos = SetFilePointer (hAppend, 0, NULL, FILE_END);
   do
   {
      if (ReadFile (hFile, buff, 4096, &dwBytesRead, NULL))
      {
         WriteFile (hAppend, buff, dwBytesRead, &dwBytesWritten, NULL);
      }
   }
   while (dwBytesRead == 4096);
   // Close both files.
   CloseHandle (hFile);
   CloseHandle (hAppend);
   return;
}

See Also

Concepts

File System Operations

Other Resources

Reading from and Writing to a File