创建指定大小的空文件
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;
}
/*
* 创建指定大小的空文件,支持超大文件(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;
}
相关文章推荐
- windows相应的API创建指定大小的空文件
- 用fsutil创建指定大小的文件
- Linux下创建指定大小文件
- 创建指定大小的空文件
- linux下创建一个指定文件大小,并实现从ext2到ext3的转换
- Linux 创建指定大小空文件
- 创建指定大小的文件
- linux下创建指定大小的空文件
- 用dd创建一个指定大小的空文件
- Ubuntu创建一个指定大小的文件用全零填充这个文件
- js动态创建fileupload控件,js判断上传文件的大小,超过指定的大小删除掉
- (25)JAVA.IO--使用Java创建指定大小的空文件
- fopen创建指定大小的文件
- 创建指定大小的文件
- shell 创建多个指定大小的文件,循环删除指定大小文件
- C# 创建指定大小文件 C#读取大文件
- 用dd创建一个指定大小的空文件
- 使用Java创建指定大小的空文件
- 创建一个指定大小格式的文件