您的位置:首页 > 其它

创建指定大小的空文件

2011-03-15 03:33 316 查看
利用CreateFileMapping函数的可扩展文件大小的特性,创建指定大小的空文件
/*
* 创建指定大小的空文件,支持超大文件(16EB),小于4GB时, 
* 参数dwHigh可传入0,
* 成功返回0, 失败返回错误代码
*/
BOOL CreateNullFile(DWORD dwHigh, DWORD dwLow, LPCTSTR lpcszFileName)
{
    BOOL bResult = FALSE;
    HANDLE hFile = ::CreateFile(lpcszFileName, GENERIC_READ | GENERIC_WRITE, 
                            FILE_SHARE_READ | FILE_SHARE_WRITE,
                            NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (INVALID_HANDLE_VALUE == hFile)
    {
        return (BOOL)::GetLastError();
    }
    
    HANDLE hFileMap = ::CreateFileMapping(hFile, NULL, PAGE_READWRITE, dwHigh, dwLow, NULL);
    if (NULL == hFileMap)
    {
        return (BOOL)::GetLastError();
    }

    ::CloseHandle(hFileMap);
    ::CloseHandle(hFile);

    return bResult;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: