Windows程序设计_21_Win32文件操作

时间:2021-04-05 16:01:20

没什么新的内容,自己的练习代码,供大家点评。

/*
Windows系统编程--实例
1)复制文件
*/ #define UNICODE
//#define _UNICODE #include <windows.h>
#include <tchar.h>
#include <stdio.h> #define BUF_SIZE 2 int _tmain(int argc,LPTSTR argv[])
{
HANDLE hFileIn,
hFileOut;
TCHAR nBuff[BUF_SIZE];
DWORD nIn,
nOut; if(^argc)
{
puts("Useage:cpWFile file1 file2 \n");
return ;
} /*
CreateFile函数原型:
HANDLE CreateFile(lpName, )
*/
hFileIn=CreateFile(argv[], //要打开或者要创建的文件名
GENERIC_READ, //指定是读访问、还是写访问,这里是读访问,可使用位旗标
, //指定文件的共享模式,0不能共享
NULL, //这个参数指定文件的安全属性
OPEN_EXISTING, //这个参数表明是打开已有文件,还是创建新文件,这里打开已有文件
FILE_ATTRIBUTE_NORMAL, //设置文件的属性和标记
NULL //已打开的文件的句柄,这个参数用于将传入的文件与现在的文件具有相同的属性
);
if(hFileIn==NULL)
{
printf("Can not open input file:%s .Error:%x\n",argv[],GetLastError());
return ;
} hFileOut=CreateFile(argv[],
GENERIC_WRITE,
,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if(INVALID_HANDLE_VALUE==hFileOut)
{
printf("Can not open out file.Error:%x\n",GetLastError());
return ;
} while(ReadFile(hFileIn,nBuff,BUF_SIZE,&nIn,NULL)&& nIn>)
{
WriteFile(hFileOut,nBuff,nIn,&nOut,NULL);
if(nIn^nOut)
{
printf("Fatal Error:%x\n",GetLastError());
return ;
}
} CloseHandle(hFileIn);
CloseHandle(hFileOut);
return ;
}