windows相应的API创建指定大小的空文件
1. CreateFile;
2. SetFilePointer;
3. SetEndOfFile.
经测试,可以在NTFS上快速创建;但是FAT32上速度比较慢,估计还是写了磁盘。
BOOL CFtpFile::CreateFileDemo(TCHAR* pFileName)
{
HANDLE hFile;
HANDLE hMapFile;
hFile = CreateFile(
pFileName,
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if( hFile == INVALID_HANDLE_VALUE )
{
OutputDebugString(_T("CreateFile fail!/r/n"));
return FALSE;
}
hMapFile = CreateFileMapping(
hFile,
NULL,
PAGE_READWRITE,
0,
512*1024*1024, // 1024 MByte
NULL
);
if( hMapFile == NULL )
{
CloseHandle( hFile );
return FALSE;
}
CloseHandle( hMapFile );
CloseHandle( hFile );
return TRUE;
}