2,641
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <winioctl.h>
using namespace std;
int main(int argc, char* argv[])
{
if(argc != 3) return -1;
long lSize = 1024*atol(argv[2]);
DWORD dwStart = GetTickCount();
HANDLE hFile = CreateFile(argv[1], GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_NO_BUFFERING, NULL);
DWORD dwEnd = GetTickCount();
cout<<dwEnd-dwStart<<" ms"<<endl;
dwEnd = dwStart;
{
// NTFS稀疏文件优化,FAT32下不起作用
DWORD dwBytesReturned = 0;
DeviceIoControl(hFile, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &dwBytesReturned, NULL);
}
{
SetFilePointer(hFile, lSize, NULL, FILE_BEGIN);
SetEndOfFile(hFile);
CloseHandle(hFile);
}
dwEnd = GetTickCount();
cout<<dwEnd-dwStart<<" ms"<<endl;
return 0;
}
bool E_API
E_File_SHCreateBigFile(IN const char *pchar_param_FilePath,
IN LONGLONG llg_param_FileSize)