首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么用CreateFile以写的方式打开一个只读文件

2012-02-20 
如何用CreateFile以写的方式打开一个只读文件? - C++ Builder / Windows SDK/API我要对一个文件进行写操作

如何用CreateFile以写的方式打开一个只读文件? - C++ Builder / Windows SDK/API
我要对一个文件进行写操作,但发现那个文件是只读属性,于是乎CreateFile就失败了。
我想问如何用CreateFile以写的方式打开一个只读文件?
CreateFile中有参数可以指定这种操作码?
还是要先用其他函数改变文件属性,再对文件进行写操作,然后再还原文件属性?那是用些什么函数呢?

[解决办法]

C/C++ code
char szFileName[] = "C:\\ccrun\\123.dat";HANDLE hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile == INVALID_HANDLE_VALUE){    DWORD dwLastError = GetLastError();    if (dwLastError == 5)    {        DWORD dwAttr = GetFileAttributes(szFileName);        dwAttr &= ~FILE_ATTRIBUTE_READONLY;        dwAttr &= ~FILE_ATTRIBUTE_SYSTEM;        SetFileAttributes(szFileName, dwAttr);    }    hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);}if (hFile != INVALID_HANDLE_VALUE){    // 进行读写操作    ....    //    ::CloseHandle(hFile);    ShowMessage("ok");}
[解决办法]
引用楼主 kornberg206 的帖子:
我要对一个文件进行写操作,但发现那个文件是只读属性,于是乎CreateFile就失败了。
我想问如何用CreateFile以写的方式打开一个只读文件?
CreateFile中有参数可以指定这种操作码?
还是要先用其他函数改变文件属性,再对文件进行写操作,然后再还原文件属性?那是用些什么函数呢?

热点排行