|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Creating and Using a Temporary File
The following example copies one file to another. The second file is an uppercase version of the first file.
The application opens the ORIGINAL.TXT file by using CreateFile. The application then obtains a temporary filename with the GetTempFileName function and uses CreateFile to create the temporary file. The application reads 4K blocks into a buffer, converts the buffer contents to uppercase, and writes the converted buffer to the temporary file. When all of ORIGINAL.TXT has been written to the temporary file, the application closes both files and renames the temporary file to ALLCAPS.TXT by using the MoveFile function.
HANDLE hFile; HANDLE hTempFile; DWORD dwBytesRead, dwBytesWritten, dwPos; char szTempName[MAX_PATH]; char buffer[4096]; // Open the existing file. hFile = CreateFile("ORIGINAL.TXT", // filename 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 file."); // process error } // Create a temporary file. GetTempFileName("\\TEMP", // dir. for temp. files "NEW", // temp. filename prefix 0, // create unique name szTempName); // buffer for name
hTempFile = CreateFile((LPTSTR) szTempName, // filename GENERIC_READ | GENERIC_WRITE, // open for read-write
0, // do not share NULL, // no security CREATE_ALWAYS, // overwrite existing file FILE_ATTRIBUTE_NORMAL, // normal file NULL); // no attr. template
if (hTempFile == INVALID_HANDLE_VALUE) { ErrorHandler("Could not create temporary file."); } // Read 4K blocks to the buffer. // Change all characters in the buffer to uppercase. // 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 == 4096); // Close both files. CloseHandle(hFile); CloseHandle(hTempFile); // Move the temporary file to the new text file. if (!MoveFile(szTempName, "ALLCAPS.TXT")) { ErrorHandler("Could not move temp. file.");
}
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Создание и Использование Временного Файла
Следующий пример копирует один файл другому. Второй файл является версией верхнего регистра первого файла.
Приложение открывает файл ORIGINAL.TXT используя CreateFile. Приложение затем получает временный filename с GetTempFileName функционировать и использует CreateFile, чтобы создавать временный файл. Приложение читает блоков 4K в буфер, преобразовывает буферное содержание в верхний регистр и пишет преобразованный буфер во временный файл. Когда все ORIGINAL.TXT написан во временный файл, приложение закрывает как файлы так и переименовывает временный файл в ALLCAPS.TXT используя функцию MoveFile.
ПРООПЕРИРУЙТЕ hFile; ПРООПЕРИРУЙТЕ hTempFile; DWORD dwBytesRead, dwBytesWritten, dwPos; символ szTempName[MAX_PATH]; символ буферизует[4096]; // Открытый существующий файл. hFile = CreateFile("ORIGINAL.TXT", // filename GENERIC_READ, // Открытый для чтения 0, // не не распространять НЕДЕЙСТВИТЕЛЬНУЮ, // никакую безопасность OPEN_EXISTING, // существующий файл только FILE_ATTRIBUTE_NORMAL, // нормальный файл
НЕДЕЙСТВИТЕЛЬНЫЙ); // никакой attr. шаблон если (hFile == INVALID_HANDLE_VALUE) { ErrorHandler("Could не открытый файл."); // ошибка процесса } // Создайте временный файл. GetTempFileName("\\TEMP", // dir. ДЛЯ temp. файлов "НОВЫЙ", // temp. filename префикс 0, // создавать уникальное имя szTempName); // буфер для имени
hTempFile = CreateFile((LPTSTR) szTempName, // filename GENERIC_READ | GENERIC_WRITE, // ОТКРЫТЫЙ для чтения-записи
0, // не распространять НЕДЕЙСТВИТЕЛЬНЫЙ, // никакая безопасность CREATE_ALWAYS, // перезаписывать существовать файла FILE_ATTRIBUTE_NORMAL, // нормальный файловый НЕДЕЙСТВИТЕЛЬНЫЙ); // никакой attr. шаблон
если (hTempFile == INVALID_HANDLE_VALUE) { ErrorHandler("Could не создает временный файл."); } // Прочитавшее блоков 4K в буфер. // Измените все символы в буфере в верхний регистр. // Напишите буфер во временный файл.
сделайте { если (ReadFile(hFile, буферизуйте, 4096, &dwBytesRead, НЕДЕЙСТВИТЕЛЬНОЕ)) { CharUpperBuff(БУФЕР, dwBytesRead); WriteFile(hTempFile, БУФЕР, dwBytesRead, &dwBytesWritten, НЕДЕЙСТВИТЕЛЬНОЕ); } } пока (dwBytesRead == 4096); // Закрытые оба файла. CloseHandle(hFile); CloseHandle(hTempFile); // Переместите временный файл на новый текстовый файл. если (!MoveFile(szTempName, "ALLCAPS.TXT")) { ErrorHandler("Could НЕ temp. файл перемещения.");
}
|
|
|
|
| |