创建和使用临时文件

【勇芳软件工作室】汉化HomePreviousNext

以下示例将一个文件复制到另一个文件。第二个文件是第一个文件的大写版本。

应用程序使用CreateFile打开ORIGINAL.TXT文件。然后应用程序获取具有GetTempFileName功能的临时文件名,并使用CreateFile创建临时文件。应用程序将4K块读入缓冲区,将缓冲区内容转换为大写,并将转换的缓冲区写入临时文件。当所有ORIGINAL.TXT都写入临时文件时,应用程序将关闭这两个文件,并使用MoveFile功能将临时文件重命名为ALLCAPS.TXT。

HANDLE hFile;

HANDLE hTempFile;

DWORD dwBytesRead, dwBytesWritten, dwPos;

char szTempName[MAX_PATH];

char buffer[4096];

//打开现有文件。

hFile = CreateFile("ORIGINAL.TXT", // 文件名

GENERIC_READ, //打开阅读

0, //不要分享

NULL, //没有安全

OPEN_EXISTING, //仅存在文件

FILE_ATTRIBUTE_NORMAL, //普通文件

NULL); //没有attr。模板

if (hFile == INVALID_HANDLE_VALUE) {

ErrorHandler("Could not open file."); //进程错误

}

//创建一个临时文件。

GetTempFileName("\\TEMP", //你。温度档

"NEW", // temp。文件名前缀

0, //创建唯一的名称

szTempName); //缓冲区名称

hTempFile = CreateFile((LPTSTR) szTempName, // 文件名

GENERIC_READ | GENERIC_WRITE, //打开读写

0, //不要分享

NULL, //没有安全

CREATE_ALWAYS, //覆盖现有文件

FILE_ATTRIBUTE_NORMAL, //普通文件

NULL); //没有attr。模板

if (hTempFile == INVALID_HANDLE_VALUE) {

ErrorHandler("Could not create temporary file.");

}

//读取4K块到缓冲区。

//将缓冲区中的所有字符更改为大写。

//将缓冲区写入临时文件。

do

{

if(ReadFile(hFile,buffer,4096,

& dwBytesRead,NULL)){

CharUpperBuff(buffer, dwBytesRead);

WriteFile(hTempFile,buffer,dwBytesRead,

&dwBytesWritten, NULL);

}

} while (dwBytesRead == 4096);

//关闭这两个文件。

CloseHandle(hFile);

CloseHandle(hTempFile);

//将临时文件移动到新的文本文件。

if(!MoveFile(szTempName,“ALLCAPS.TXT”)){

ErrorHandler("Could not move temp. file.");

}