代码改变世界

CreateFile创建文件

2012-10-09 15:02  kennyMc  阅读(7687)  评论(0编辑  收藏  举报
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    char text[]="Stupid Japanese";
    DWORD dwBytesWritten =0;

    //详细参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx
    //或者《windows核心编程》
    HANDLE hFile;//文件句柄
    hFile=CreateFile(
        "C:\\test.txt",//创建或打开的文件或设备的名称(这里是txt文件)。
        GENERIC_WRITE,// 文件访问权限,写
        0,//共享模式,这里设置0防止其他进程打开文件或设备
        NULL,//SECURITY_ATTRIBUTES结构,安全描述,这里NULL代表默认安全级别
        CREATE_ALWAYS,//对于存在或不存在的设置执行的操作,这里是始终创建
        FILE_ATTRIBUTE_NORMAL,//设置文件的属性,里面有高速缓存的选项
        NULL);

    //这里失败不会返回NULL,而是INVALID_HANDLE_VALUE
    if(hFile==INVALID_HANDLE_VALUE)
    {
        cout<<"hFile ERROR"<<endl;
        return 1;
    }

    if(WriteFile(hFile,text,strlen(text),&dwBytesWritten,NULL)==FALSE)
    {
        cout<<"WriteFile ERROR"<<endl;
        return 1;
    };
    CloseHandle(hFile);
    cout<<"ok"<<endl;
    system("PAUSE");
    return 0;
}