none
如何获得文件尺寸? RRS feed

  • 问题

  • 我在 Windows Store app 环境下可以用 CreateFile2 和 ReadFile 函数,
    但 GetFileSize 函数系统不再提供了。

    我的目的就是在读取文件前先获得文件的尺寸,好来确定要事先创建多大的缓存。
    那么,在 Windows Store app 环境下有什么可以达到目的的函数吗?

    2014年12月17日 0:02

答案

  • 那你试一下这个呢: GetFileInformationByHandleEx, 在FILE_STANDARD_INFO 里面貌似可以获取大小。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 lihuipeng49 2014年12月20日 10:22
    2014年12月19日 7:44
    版主
  • 	HANDLE hFile = CreateFile2(szPath2, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, nullptr);
    	ASSERT(hFile);
    
    	FILE_STANDARD_INFO info;
    	GetFileInformationByHandleEx(hFile, FileStandardInfo, &info, sizeof(info));
    
    	DWORD fileSize = info.EndOfFile.LowPart;
    	CloseHandle(hFile);
    
    多谢提示,用如上方法就可以完成。
    • 已标记为答案 lihuipeng49 2014年12月20日 10:22
    2014年12月20日 10:22

全部回复

  • 你好 慧鹏,

    是否可以尝试一下Windows Store App的API:StorageFile.GetBasicPropertiesAsync | getBasicPropertiesAsync method

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. <br/> Click <a href="http://support.microsoft.com/common/survey.aspx?showpage=1&scid=sw%3Ben%3B3559&theme=tech"> HERE</a> to participate the survey.

    2014年12月18日 1:41
    版主
  • CreateFile2 和 ReadFile 都是同步函数,所以我还得需要同步函数来完成功能。
    不然,我的程序流程就改变了。
    2014年12月18日 3:55
  • 那你试一下这个呢: GetFileInformationByHandleEx, 在FILE_STANDARD_INFO 里面貌似可以获取大小。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 lihuipeng49 2014年12月20日 10:22
    2014年12月19日 7:44
    版主
  • 	HANDLE hFile = CreateFile2(szPath2, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, nullptr);
    	ASSERT(hFile);
    
    	FILE_STANDARD_INFO info;
    	GetFileInformationByHandleEx(hFile, FileStandardInfo, &info, sizeof(info));
    
    	DWORD fileSize = info.EndOfFile.LowPart;
    	CloseHandle(hFile);
    
    多谢提示,用如上方法就可以完成。
    • 已标记为答案 lihuipeng49 2014年12月20日 10:22
    2014年12月20日 10:22