您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetFileSizeEx函数代码示例

51自学网 2021-06-01 21:07:52
  C++
这篇教程C++ GetFileSizeEx函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetFileSizeEx函数的典型用法代码示例。如果您正苦于以下问题:C++ GetFileSizeEx函数的具体用法?C++ GetFileSizeEx怎么用?C++ GetFileSizeEx使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetFileSizeEx函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: FormatAttachmentPartHeader

BOOL CHttpRequestSender::CalcAttachmentPartSize(CString sName, LONGLONG& lSize){  lSize = 0;  CString sPartHeader;  BOOL bFormat = FormatAttachmentPartHeader(sName, sPartHeader);  if(!bFormat)    return FALSE;  lSize += sPartHeader.GetLength();  std::map<CString, CHttpRequestFile>::iterator it = m_Request.m_aIncludedFiles.find(sName);  if(it==m_Request.m_aIncludedFiles.end())    return FALSE;   CString sFileName = it->second.m_sSrcFileName.GetBuffer(0);  HANDLE hFile = CreateFile(sFileName,      GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);   if(hFile==INVALID_HANDLE_VALUE)  {        return FALSE;   }  LARGE_INTEGER lFileSize;  BOOL bGetSize = GetFileSizeEx(hFile, &lFileSize);  if(!bGetSize)  {    CloseHandle(hFile);    return FALSE;  }  lSize += lFileSize.QuadPart;  CloseHandle(hFile);  CString sPartFooter;  bFormat = FormatAttachmentPartFooter(sName, sPartFooter);  if(!bFormat)    return FALSE;  lSize += sPartFooter.GetLength();  return TRUE;}
开发者ID:doo,项目名称:CrashRpt,代码行数:41,


示例2: CreateFile

LONG64 CCrashInfoReader::GetUncompressedReportSize(CErrorReportInfo& eri){	// Calculate summary size of all files included into crash report    LONG64 lTotalSize = 0;    std::map<CString, ERIFileItem>::iterator it;    HANDLE hFile = INVALID_HANDLE_VALUE;      CString sMsg;    BOOL bGetSize = FALSE;    LARGE_INTEGER lFileSize;	// Walk through all files in the crash report    for(it=eri.m_FileItems.begin(); it!=eri.m_FileItems.end(); it++)    {   		// Get file name        CString sFileName = it->second.m_sSrcFile.GetBuffer(0);		// Check file exists        hFile = CreateFile(sFileName,             GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);         if(hFile==INVALID_HANDLE_VALUE)            continue; // File does not exist		// Get file size        bGetSize = GetFileSizeEx(hFile, &lFileSize);        if(!bGetSize)        {            CloseHandle(hFile);            continue;        }		// Add to the sum        lTotalSize += lFileSize.QuadPart;		// Clean up        CloseHandle(hFile);        hFile = INVALID_HANDLE_VALUE;    }	// Return summary size    return lTotalSize;}
开发者ID:doo,项目名称:CrashRpt,代码行数:41,


示例3: MirrorSetAllocationSize

static int DOKAN_CALLBACKMirrorSetAllocationSize(	LPCWSTR				FileName,	LONGLONG			AllocSize,	PDOKAN_FILE_INFO	DokanFileInfo){	WCHAR			filePath[MAX_PATH];	HANDLE			handle;	LARGE_INTEGER	fileSize;	GetFilePath(filePath, MAX_PATH, FileName);	DbgPrint(L"SetAllocationSize %s, %I64d/n", filePath, AllocSize);	handle = (HANDLE)DokanFileInfo->Context;	if (!handle || handle == INVALID_HANDLE_VALUE) {		DbgPrint(L"/tinvalid handle/n/n");		return -1;	}	if (GetFileSizeEx(handle, &fileSize)) {		if (AllocSize < fileSize.QuadPart) {			fileSize.QuadPart = AllocSize;			if (!SetFilePointerEx(handle, fileSize, NULL, FILE_BEGIN)) {				DbgPrint(L"/tSetAllocationSize: SetFilePointer eror: %d, "					L"offset = %I64d/n/n", GetLastError(), AllocSize);				return GetLastError() * -1;			}			if (!SetEndOfFile(handle)) {				DWORD error = GetLastError();				DbgPrint(L"/terror code = %d/n/n", error);				return error * -1;			}		}	} else {		DWORD error = GetLastError();		DbgPrint(L"/terror code = %d/n/n", error);		return error * -1;	}	return 0;}
开发者ID:jdstroy,项目名称:dokany,代码行数:41,


示例4: FindProcessId

DWORD FindProcessId (DWORD jobNumber)/* Obtain the process ID of the specified job number. */{	HANDLE hJobData;	JM_JOB jobRecord;	DWORD nXfer, fileSizeLow;	TCHAR jobMgtFileName[MAX_PATH+1];	OVERLAPPED regionStart;	LARGE_INTEGER fileSize;	if ( !GetJobMgtFileName (jobMgtFileName) ) return 0;	hJobData = CreateFile (jobMgtFileName, GENERIC_READ,			FILE_SHARE_READ | FILE_SHARE_WRITE,			NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);	if (hJobData == INVALID_HANDLE_VALUE) return 0;	/* Position to the correct record, but not past the end of file */	/* As a variation, use GetFileSize to demonstrate its operation. */	if (!GetFileSizeEx (hJobData, &fileSize) ||		(fileSize.HighPart != 0 || SJM_JOB * (jobNumber - 1) > fileSize.LowPart 		 || fileSize.LowPart > SJM_JOB * MAX_JOBS_ALLOWED))			return 0;	fileSizeLow = fileSize.LowPart;	/* SetFilePoiner is more convenient here than SetFilePointerEx since the the file is known to be "short" ( < 4 GB). */	SetFilePointer (hJobData, SJM_JOB * (jobNumber - 1), NULL, FILE_BEGIN);		/* Get a shared lock on the record. */		regionStart.Offset = SJM_JOB * (jobNumber - 1);	regionStart.OffsetHigh = 0; /* Assume a "short" file. */	regionStart.hEvent = (HANDLE)0;	LockFileEx (hJobData, 0, 0, SJM_JOB, 0, &regionStart);		if (!ReadFile (hJobData, &jobRecord, SJM_JOB, &nXfer, NULL))		ReportError (_T ("JobData file error"), 0, TRUE);	UnlockFileEx (hJobData, 0, SJM_JOB, 0, &regionStart);	CloseHandle (hJobData);	return jobRecord.ProcessId;}
开发者ID:oneminot,项目名称:wsp,代码行数:41,


示例5: _zip_stat_win32

static int_zip_stat_win32(HANDLE h, zip_stat_t *st, _zip_source_win32_read_file_t *ctx){    FILETIME mtimeft;    time_t mtime;    LARGE_INTEGER size;    int regularp;    if (!GetFileTime(h, NULL, NULL, &mtimeft)) {	zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(GetLastError()));	return -1;    }    if (_zip_filetime_to_time_t(mtimeft, &mtime) < 0) {	zip_error_set(&ctx->error, ZIP_ER_READ, ERANGE);	return -1;    }    regularp = 0;    if (GetFileType(h) == FILE_TYPE_DISK) {	regularp = 1;    }    if (!GetFileSizeEx(h, &size)) {	zip_error_set(&ctx->error, ZIP_ER_READ, _zip_win32_error_to_errno(GetLastError()));	return -1;    }    zip_stat_init(st);    st->mtime = mtime;    st->valid |= ZIP_STAT_MTIME;    if (ctx->end != 0) {	st->size = ctx->end - ctx->start;	st->valid |= ZIP_STAT_SIZE;    }    else if (regularp) {	st->size = (zip_uint64_t)size.QuadPart;	st->valid |= ZIP_STAT_SIZE;    }    return 0;}
开发者ID:jas88,项目名称:jas88tools,代码行数:41,


示例6: uGetFileSize

int uGetFileSize(UFile fd, __int64 * file_size, sys_call_error_fun fun){#ifdef _WIN32    LARGE_INTEGER size;    BOOL res = GetFileSizeEx(fd, &size);    if (res == 0)        sys_call_error("GetFileSizeEx");    else        *file_size = size.QuadPart;    return res;#else    struct stat64 buf;    if (fstat64(fd, &buf) == -1)    {        sys_call_error("fstat64");        return 0;    }    *file_size = buf.st_size;    return 1;#endif}
开发者ID:rolftimmermans,项目名称:sedna-ruby,代码行数:21,


示例7: GetFileSizeEx

::FLAC__StreamDecoderLengthStatusOurDecoder::length_callback(FLAC__uint64 *stream_length){#ifdef PRWIN_ENV	LARGE_INTEGER lpos;	BOOL result = GetFileSizeEx(_fp, &lpos);		*stream_length = lpos.QuadPart;		return (result ? FLAC__STREAM_DECODER_LENGTH_STATUS_OK : FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR);#else	SInt64 fork_size = 0;		OSErr result = FSGetForkSize(CAST_REFNUM(_fp), &fork_size);			*stream_length = fork_size;		return (result == noErr ? FLAC__STREAM_DECODER_LENGTH_STATUS_OK : FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR);#endif}
开发者ID:d3n1c1d3,项目名称:AdobeOgg,代码行数:21,


示例8: getFileSize

LONGLONG getFileSize(HANDLE hFile){	LARGE_INTEGER lpFileSize = {0};	if ((hFile != INVALID_HANDLE_VALUE) && (hFile != 0))	{		if (!GetFileSizeEx(hFile, &lpFileSize))		{			MessageBox(0, TEXT("GetFileSizeEx failed"), TEXT("Error"), MB_ICONERROR);			return 0;		}		else		{			return lpFileSize.QuadPart;		}	}	else	{		return 0;	}}
开发者ID:NtQuery,项目名称:PatternManager,代码行数:21,


示例9: sizeof

size_t File::GetFileSize(){	if( !IsValidHandle() )		return 0;	size_t Size = 0;#if _WIN32 || _WIN64	LARGE_INTEGER LInt;	Memory::Memzero( &LInt, sizeof(LInt) );	GetFileSizeEx( m_file_handle, &LInt );	Size = (size_t) LInt.QuadPart;	//DWORD dwSize = GetFileSize( m_hFile, NULL );#else	size_t Pos = ftell(m_file_handle);	fseek( m_file_handle, 0, SEEK_END );	Size = ftell(m_file_handle);	fseek( m_file_handle, Pos, SEEK_SET );#endif	return Size;}
开发者ID:nsweb,项目名称:bigball,代码行数:21,


示例10: Destroy

BOOL CFileMemoryMapping::Init(LPCTSTR szFileName){    if(m_hFile!=INVALID_HANDLE_VALUE)    {        // If a file mapping already created, destroy it        Destroy();    }    // Open file handle    m_hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);    if(m_hFile == INVALID_HANDLE_VALUE)        return FALSE;    // Create file mapping    m_hFileMapping = CreateFileMapping(m_hFile, 0, PAGE_READONLY, 0, 0, 0);    LARGE_INTEGER size;    GetFileSizeEx(m_hFile, &size);    m_uFileLength = size.QuadPart;    return TRUE;}
开发者ID:cpzhang,项目名称:zen,代码行数:21,


示例11: LoadFile

//Return the contents of a text filevoid LoadFile(char *path, DataFile *dataFile){		HANDLE fileHandle = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);	if (fileHandle != INVALID_HANDLE_VALUE)	{		LARGE_INTEGER fileSize;		if (GetFileSizeEx(fileHandle, &fileSize))		{			unsigned int fileSize_32bit = (unsigned int)fileSize.QuadPart;			dataFile->Data = VirtualAlloc(0, fileSize_32bit, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);						if (dataFile->Data)			{				DWORD bytesRead;				if (ReadFile(fileHandle, dataFile->Data, fileSize_32bit, &bytesRead, NULL) && fileSize_32bit == bytesRead)				{					dataFile->Length = fileSize_32bit;				}				else				{					//Failed to read file				}			}			else			{				//Failed to allocate memory			}		}		else		{			//Failed to get file size		}	}	else	{		//Failed to create file handle	}}
开发者ID:kaisama,项目名称:Phase-1,代码行数:41,


示例12: path_get_size

/* return the size of a given file in '*psize'. returns 0 on * success, -1 on failure (error code in errno) */APosixStatuspath_get_size( const char*  path, uint64_t  *psize ){#ifdef _WIN32    /* avoid _stat64 which is only defined in MSVCRT.DLL, not CRTDLL.DLL */    /* do not use OpenFile() because it has strange search behaviour that could */    /* result in getting the size of a different file */    LARGE_INTEGER  size;    HANDLE  file = CreateFile( /* lpFilename */        path,                               /* dwDesiredAccess */   GENERIC_READ,                               /* dwSharedMode */     FILE_SHARE_READ|FILE_SHARE_WRITE,                               /* lpSecurityAttributes */  NULL,                               /* dwCreationDisposition */ OPEN_EXISTING,                               /* dwFlagsAndAttributes */  0,                               /* hTemplateFile */      NULL );    if (file == INVALID_HANDLE_VALUE) {        /* ok, just to play fair */        errno = ENOENT;        return -1;    }    if (!GetFileSizeEx(file, &size)) {        /* maybe we tried to get the size of a pipe or something like that ? */        *psize = 0;    }    else {        *psize = (uint64_t) size.QuadPart;    }    CloseHandle(file);    return 0;#else    int    ret;    struct stat  st;    CHECKED(ret, stat(path, &st));    if (ret == 0) {        *psize = (uint64_t) st.st_size;    }    return ret;#endif}
开发者ID:Dazdin9o,项目名称:DECAF,代码行数:42,


示例13: _lws_plat_file_open

LWS_VISIBLE lws_fop_fd_t_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename,		    const char *vpath, lws_fop_flags_t *flags){	HANDLE ret;	WCHAR buf[MAX_PATH];	lws_fop_fd_t fop_fd;	LARGE_INTEGER llFileSize = {0};	MultiByteToWideChar(CP_UTF8, 0, filename, -1, buf, ARRAY_SIZE(buf));	if (((*flags) & 7) == _O_RDONLY) {		ret = CreateFileW(buf, GENERIC_READ, FILE_SHARE_READ,			  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);	} else {		ret = CreateFileW(buf, GENERIC_WRITE, 0, NULL,			  CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);	}	if (ret == LWS_INVALID_FILE)		goto bail;	fop_fd = malloc(sizeof(*fop_fd));	if (!fop_fd)		goto bail;	fop_fd->fops = fops;	fop_fd->fd = ret;	fop_fd->filesystem_priv = NULL; /* we don't use it */	fop_fd->flags = *flags;	fop_fd->len = GetFileSize(ret, NULL);	if(GetFileSizeEx(ret, &llFileSize))		fop_fd->len = llFileSize.QuadPart;	fop_fd->pos = 0;	return fop_fd;bail:	return NULL;}
开发者ID:Ranakhamis,项目名称:godot,代码行数:40,


示例14: AddError

bool LWOFile::LoadFromFile(const char *strFile){  // try to open file  HANDLE hFile=CreateFileA(strFile, GENERIC_READ, FILE_SHARE_READ, NULL,                          OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);  if(hFile==INVALID_HANDLE_VALUE)  {    AddError("Could not open file: " + std::string(strFile));    return false;  }  // get file size  LARGE_INTEGER LI_Size;  if(!GetFileSizeEx(hFile,&LI_Size))  {    AddError("Could not get file size!");    return false;  }  unsigned int iFileSize=(unsigned int)LI_Size.QuadPart;  // allocate memory to hold the file  char *pData=new char[iFileSize];  // read file to memory  DWORD iBytesRead=0;  if(!ReadFile(hFile,pData,iFileSize,&iBytesRead,NULL) || iBytesRead!=iFileSize)  {    AddError("Reading file failed!");    delete[] pData;    CloseHandle(hFile);    return false;  }  // load  if(!LoadFromMemory(pData, iFileSize)) return false;  delete[] pData;  CloseHandle(hFile);  return true;}
开发者ID:DanielNeander,项目名称:my-3d-engine,代码行数:40,


示例15: kull_m_file_readData

BOOL kull_m_file_readData(PCWCHAR fileName, PBYTE * data, PDWORD lenght)	// for little files !{	BOOL reussite = FALSE;	DWORD dwBytesReaded;	LARGE_INTEGER filesize;	HANDLE hFile = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);	if(hFile && hFile != INVALID_HANDLE_VALUE)	{		if(GetFileSizeEx(hFile, &filesize) && !filesize.HighPart)		{			*lenght = filesize.LowPart;			if(*data = (PBYTE) LocalAlloc(LPTR, *lenght))			{				if(!(reussite = ReadFile(hFile, *data, *lenght, &dwBytesReaded, NULL) && (*lenght == dwBytesReaded)))					LocalFree(*data);			}		}		CloseHandle(hFile);	}	return reussite;}
开发者ID:AnwarMohamed,项目名称:meterpreter,代码行数:22,


示例16: open_file

static HRESULT open_file(FileProtocol *This, const WCHAR *path, IInternetProtocolSink *protocol_sink){    LARGE_INTEGER size;    HANDLE file;    file = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ, NULL,            OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);    if(file == INVALID_HANDLE_VALUE)        return report_result(protocol_sink, INET_E_RESOURCE_NOT_FOUND, GetLastError());    if(!GetFileSizeEx(file, &size)) {        CloseHandle(file);        return report_result(protocol_sink, INET_E_RESOURCE_NOT_FOUND, GetLastError());    }    This->file = file;    This->size = size.u.LowPart;    IInternetProtocolSink_ReportProgress(protocol_sink,            BINDSTATUS_CACHEFILENAMEAVAILABLE, path);    return S_OK;}
开发者ID:RareHare,项目名称:reactos,代码行数:22,


示例17: MFFileNative_GetSize

uint64 MFFileNative_GetSize(const char *pFilename){	MFCALLSTACK;	uint64 fileSize = 0;#if defined(MF_XBOX) || defined(MF_X360)	pFilename = FixXBoxFilename(pFilename);#endif	HANDLE hFile = CreateFile(MFString_UFT8AsWChar(pFilename), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);	if(hFile != INVALID_HANDLE_VALUE)	{		LARGE_INTEGER size;		GetFileSizeEx(hFile, &size);		CloseHandle(hFile);		fileSize = size.QuadPart;	}	return fileSize;}
开发者ID:TurkeyMan,项目名称:fuji,代码行数:22,


示例18:

u64 fs::file::size() const{	g_tls_error = fse::ok;#ifdef _WIN32	LARGE_INTEGER size;	if (!GetFileSizeEx((HANDLE)m_fd, &size))	{		return -1;	}	return size.QuadPart;#else	struct stat file_info;	if (::fstat(m_fd, &file_info) < 0)	{		return -1;	}	return file_info.st_size;#endif}
开发者ID:rodrigonh,项目名称:rpcs3,代码行数:22,


示例19: sizeof

UINT64  CHttpDownloader::isBreakPointFile(std::wstring wcsFile){	UINT64 uI64Num =0;	wchar_t wcsNum[255];	UINT64  uI64Return =0 ;	LARGE_INTEGER largeSize;	largeSize.QuadPart = 0;	DWORD   dwRegType = 0, dwReturnSize = sizeof(wcsNum); 	HANDLE hFile = CreateFile(wcsFile.c_str(),MYWIRTEFILE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);	if( hFile != INVALID_HANDLE_VALUE)		{		GetFileSizeEx(hFile,&largeSize);		uI64Num = largeSize.QuadPart;		if( uI64Num > BREAKRETURNBACKBYTE*1024 )			uI64Return = uI64Num - BREAKRETURNBACKBYTE*1024;	}	CloseHandle(hFile);	return uI64Return;}
开发者ID:Williamzuckerberg,项目名称:chtmoneyhub,代码行数:22,


示例20: WriteDebugLog

VOIDWriteDebugLog(LPSTR lpFile, UINT iLine, LPSTR lpFunc, LPWSTR lpMsg, ...){    LARGE_INTEGER FileSize, MoveTo, NewPos;    WCHAR szMsg[MAX_STR_LEN * 3];    WCHAR szText[MAX_STR_LEN * 4], szTime[MAX_STR_LEN];    DWORD dwBytesWritten;    va_list args;    if (!hDebugLog || hDebugLog == INVALID_HANDLE_VALUE)        return;    MoveTo.QuadPart = 0;    if (!SetFilePointerEx(hDebugLog, MoveTo, &NewPos, FILE_END))        return;    if (!GetFileSizeEx(hDebugLog, &FileSize))        return;    LockFile(hDebugLog, (DWORD_PTR)NewPos.QuadPart, 0, (DWORD_PTR)FileSize.QuadPart, 0);    GetTimeFormat(LOCALE_USER_DEFAULT,                  0, NULL, NULL, szTime,                  MAX_STR_LEN);    va_start(args, lpMsg);    StringCbVPrintf(szMsg, sizeof(szMsg), lpMsg, args);    va_end(args);    StringCbPrintf(szText, sizeof(szText),                   L"[%s] %S:%ld %S(): /"%s/"/r/n",                   szTime, lpFile, iLine, lpFunc, szMsg);    WriteFile(hDebugLog, szText,              wcslen(szText) * sizeof(WCHAR),              &dwBytesWritten, NULL);    UnlockFile(hDebugLog, (DWORD_PTR)NewPos.QuadPart, 0, (DWORD_PTR)FileSize.QuadPart, 0);}
开发者ID:WilkGardariki,项目名称:aspia,代码行数:39,


示例21: windows_file_size

static int64_t ALMIXER_CALLwindows_file_size(ALmixer_RWops * context){    LARGE_INTEGER size;    if (!context || context->hidden.windowsio.h == INVALID_HANDLE_VALUE) {        ALmixer_SetError("windows_file_size: invalid context/file not opened");		return -1;	}    if (!GetFileSizeEx(context->hidden.windowsio.h, &size)) {#if 1        return WIN_SetError("windows_file_size");#else		/* There are a lot of dependencies on iconv/UTF16 stuff just for WIN_SetError to print the HRESULT. I'd rather avoid it */		ALmixer_SetError("windows_file_size failed calling GetFileSizeEx()");		return -1;#endif    }    return size.QuadPart;}
开发者ID:darkf,项目名称:almixer,代码行数:22,


示例22: ReadFile

bool ReadFile(String filename, JavaScript::Object options, String& result){	String encoding = TEXT("");	if (options->HasKey("encoding"))		options->GetString("encoding");	// text file	if (encoding == TEXT("") || encoding == TEXT("utf-8") || encoding == TEXT("text/plain;utf-8"))	{		HANDLE hFile = CreateFile(filename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);		if (hFile != INVALID_HANDLE_VALUE)		{			DWORD numBytesRead = 0;			LARGE_INTEGER fileSize;			GetFileSizeEx(hFile, &fileSize);			// we don't want to read too large files			_ASSERT(fileSize.HighPart == 0);			// allocate buffer and read file			BYTE* data = new BYTE[fileSize.LowPart];			::ReadFile(hFile, (LPVOID) data, (DWORD) fileSize.LowPart, &numBytesRead, NULL);			// convert the buffer			int wcLen = MultiByteToWideChar(CP_UTF8, 0, (LPCCH) data, numBytesRead, NULL, 0);			TCHAR* buf = new TCHAR[wcLen + 1];			MultiByteToWideChar(CP_UTF8, 0, (LPCCH) data, numBytesRead, buf, wcLen);			buf[wcLen] = 0;			result = String(buf, buf + wcLen);			delete[] buf;			delete[] data;		}		CloseHandle(hFile);		return true;	}	return false;}
开发者ID:AlienX,项目名称:zephyros,代码行数:39,


示例23: CreateFile

uint64 TFile::GetSize(const TStr& FNm) {    // open     HANDLE hFile = CreateFile(       FNm.CStr(),            // file to open       GENERIC_READ,          // open for reading       FILE_SHARE_READ | FILE_SHARE_WRITE,       // share for reading       NULL,                  // default security       OPEN_EXISTING,         // existing file only       FILE_ATTRIBUTE_NORMAL, // normal file       NULL);                 // no attr. template    // check if we could open it    if (hFile == INVALID_HANDLE_VALUE) {        TExcept::Throw("Can not open file " + FNm + "!"); }    // read file times    LARGE_INTEGER lpFileSizeHigh;	if (!GetFileSizeEx(hFile, &lpFileSizeHigh)) {        TExcept::Throw("Can not read size of file " + FNm + "!"); }    // close file    CloseHandle(hFile);    // convert to uint64	return uint64(lpFileSizeHigh.QuadPart);}
开发者ID:andrejmuhic,项目名称:qminer,代码行数:22,


示例24: ReadEntireFile

Win32FileContents ReadEntireFile(const char * Filename){	HANDLE File = CreateFileA(Filename, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);	LARGE_INTEGER Size;	GetFileSizeEx(File, &Size);	Win32FileContents FileContents = {};	FileContents.Size = Size.QuadPart;	FileContents.Data = (unsigned char *)VirtualAlloc(0, Size.LowPart, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);	DWORD BytesRead;	ReadFile(File, FileContents.Data, Size.LowPart, &BytesRead, 0);	if (BytesRead != Size.LowPart) {		DisplayMessage(GetLastError());		//TODO: Logging, errors etc	}	return FileContents;};
开发者ID:Abscission,项目名称:platform-game,代码行数:22,


示例25: FileMapOpen

/**	获得只读文件的句柄。注意只适合于只读文件! *	快速访问文件,用FileMapping方式对大文件的访问 *	将会最为快捷。 *	顺序访问数据 */FILEMAPHANDLE FileMapOpen(const TCHAR *file_name){    FILEMAPHANDLE handle;    handle = (FILEMAPHANDLE) malloc(sizeof(FILEMAPDATA));    if (!handle)        return 0;    //打开文件    handle->h_file = CreateFile(file_name, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);    if (handle->h_file == INVALID_HANDLE_VALUE)    {        free(handle);        return 0;    }    handle->length = 0;    GetFileSizeEx(handle->h_file, (PLARGE_INTEGER)&handle->length);    //创建映射    handle->h_map = CreateFileMapping(handle->h_file, 0, PAGE_READONLY,	0, 0, 0);    if (!handle->h_map)    {        CloseHandle(handle->h_file);        free(handle);        return 0;    }    SYSTEM_INFO sys_info;    GetSystemInfo(&sys_info);    handle->granularity = (int)sys_info.dwAllocationGranularity;    handle->offset		= 0;    handle->view		= 0;    return handle;}
开发者ID:Strongc,项目名称:unispim,代码行数:44,


示例26: CreateFileW

void MetroWindow::DiscoverInstallerImage(){	wchar_t szImageFile[MAX_UNC_PATH] = { 0 };	if (DiscoverInstallerIMAGE(m_hWnd, szImageFile) == S_OK)	{		::SetWindowText(GetDlgItem(IDC_EDIT_IMAGE), szImageFile);		ProcessInfo = L"Manager Task Rate:";		JobStatusRate = L"Task not start";		MTNotices = L"Notices> Enviroment Inspection:/n"+envinfo;		m_proge.SetPos(0);		HANDLE hFile;		LARGE_INTEGER FileSize;		hFile = CreateFileW(szImageFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);		if (hFile != INVALID_HANDLE_VALUE)		{			GetFileSizeEx(hFile, &FileSize);			swprintf_s(SizeStr, L" %lld Bytes ||%4.1f KB ||%4.2f MB ||%4.2f GB", FileSize.QuadPart, (float)FileSize.QuadPart / 1024, (float)FileSize.QuadPart / (1024 * 1024), (float)FileSize.QuadPart / (1024 * 1024 * 1024));			SendMessage(WM_PAINT, 0, 0);		}		CloseHandle(hFile);	}}
开发者ID:codepongo,项目名称:iBurnMgr,代码行数:22,


示例27: CreateFile

HRESULT MkvFile::Open(const wchar_t* strFileName){    if (strFileName == 0)        return E_INVALIDARG;    if (m_hFile != INVALID_HANDLE_VALUE)        return E_UNEXPECTED;    m_hFile = CreateFile(                strFileName,                GENERIC_READ,                FILE_SHARE_READ,                0,  //security attributes                OPEN_EXISTING,                FILE_ATTRIBUTE_READONLY,                0);    if (m_hFile == INVALID_HANDLE_VALUE)    {        const DWORD e = GetLastError();        return HRESULT_FROM_WIN32(e);    }    LARGE_INTEGER size;    const BOOL b = GetFileSizeEx(m_hFile, &size);    if (!b)    {        const DWORD e = GetLastError();        Close();        return HRESULT_FROM_WIN32(e);    }    m_length = size.QuadPart;    assert(m_length >= 0);    return S_OK;}
开发者ID:brion,项目名称:webmdshow,代码行数:39,


示例28: ReadWholeFile

void* ReadWholeFile( char* filename, int64* bytesRead ) {	//Open	HANDLE fileHandle;	//TODO: look into other options, such as: Overlapped, No_Bufffering, and Random_Access	fileHandle = CreateFile( filename, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );	if( fileHandle == INVALID_HANDLE_VALUE ) {		assert( false );	}	//Determine amount of data	LARGE_INTEGER fileSize;	GetFileSizeEx( fileHandle, &fileSize );	if( fileSize.QuadPart == 0 ) {		assert( false );	}	assert( fileSize.QuadPart <= 0xFFFFFFFF );	//Reserve Space	void* data = 0;	data = malloc( fileSize.QuadPart );	memset( data, 0, fileSize.QuadPart );	assert( data != 0 );	//Read data	DWORD dataRead = 0;	//TODO: adjust for overlapped or async stuff?	BOOL readSuccess = ReadFile( fileHandle, data, fileSize.QuadPart, &dataRead, 0 );	if( !readSuccess || dataRead != fileSize.QuadPart ) {	}	//Close	BOOL closeReturnValue = CloseHandle( fileHandle );	assert( closeReturnValue );	*bytesRead = fileSize.QuadPart;	return data;}
开发者ID:tgolebiowski,项目名称:TetrahedronDemo,代码行数:38,


示例29: _file_load

static int _file_load(const char *file, void **data, u32 * len){    HANDLE h, fmo;    LARGE_INTEGER size;    void *buf;    h = CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);    if (h == INVALID_HANDLE_VALUE) {        fprintf(stderr, "ERROR: failed to open file %s/n", file);        return -1;    }    // figure out how big the file is.    if (GetFileSizeEx(h, &size) == 0) {        fprintf(stderr, "ERROR: failed to get size of file %s/n", file);        return -1;    }    fmo = CreateFileMapping(h, NULL, PAGE_READONLY, size.u.HighPart, size.u.LowPart, NULL);    if (fmo == NULL) {        fprintf(stderr, "ERROR: failed to create file mapping for file %s: %d/n", file, GetLastError());        return -1;    }    buf = MapViewOfFile(fmo, FILE_MAP_READ, 0, 0, size.u.LowPart);    if (buf == NULL) {        fprintf(stderr, "ERROR: failed to create a file view for file %s: %d/n", file, GetLastError());        return -1;    }    printf("file %s (size=%ld) mapped at %p/n", file,           size.u.LowPart, buf);    *data = buf;    *len = size.u.LowPart;    return 0;}
开发者ID:iversonjimmy,项目名称:acer_cloud_wifi_copy,代码行数:38,


示例30: get_filesize

size_t get_filesize(const char *filepath){#ifdef WINDOWS    HANDLE hFile = CreateFile(		filepath, 		GENERIC_READ, 		FILE_SHARE_READ | FILE_SHARE_WRITE, 		NULL, 		OPEN_EXISTING, 		FILE_ATTRIBUTE_NORMAL, 		NULL	);		    if (hFile == INVALID_HANDLE_VALUE)        return 0;    LARGE_INTEGER size;    if (!GetFileSizeEx(hFile, &size))    {        CloseHandle(hFile);        return 0;    }    CloseHandle(hFile);	    return (size_t)size.QuadPart;#else	size_t size = 0;	struct stat fileStat;		if ((stat(filepath, &fileStat)) >= 0)	{		size = (size_t)fileStat.st_size;	}		return size;#endif}
开发者ID:freshe,项目名称:oink,代码行数:38,



注:本文中的GetFileSizeEx函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GetFileTime函数代码示例
C++ GetFileSize函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。