为什么,我用GetFileSize取得文件大小,如果文件存在返回是1,不存在则返回0怎么没有返回文件具体大小呢

解决方案 »

  1.   

    m_file = ::CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if(m_file == INVALID_HANDLE_VALUE)
    return 0;
    DWORD dwHigh = 0;
    m_size = ::GetFileSize(m_file, &dwHigh);
      

  2.   

    MSDN上有例子,我想你可能搞错了,你可以借鉴1楼和我贴过来的代码看看// 
    // Case One: calling the function with 
    //           lpFileSizeHigh == NULL 
     
    // Try to obtain hFile's size 
    dwSize = GetFileSize (hFile, NULL) ; 
     
    // If we failed ... 
    if (dwSize == 0xFFFFFFFF) { 
     
        // Obtain the error code. 
        dwError = GetLastError() ; 
     
        // Deal with that failure. 
        . 
        . 
        . 
     
        } // End of error handler 
     
     
    // 
    // Case Two: calling the function with 
    //           lpFileSizeHigh != NULL 
     
    // Try to obtain hFile's huge size. 
    dwSizeLow = GetFileSize (hFile, & dwSizeHigh) ; 
     
    // If we failed ... 
    if (dwSizeLow == 0xFFFFFFFF 
        && 
        (dwError = GetLastError()) != NO_ERROR ){ 
     
        // Deal with that failure. 
        . 
        . 
        . 
     
        } // End of error handler. 
      

  3.   

    楼主,把你这个函数放到msdn,看例子就知道了
      

  4.   


    m_hGetFileSize=CreateFile((LPCWSTR)szPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); dwFileSize=GetFileSize(m_hGetFileSize,NULL); if(m_hGetFileSize == INVALID_HANDLE_VALUE||dwFileSize == 0xFFFFFFFF )
    {
    //不存在 }
    else
    {
         //存在
    }
    这样有错吗
      

  5.   

    m_hGetFileSize=CreateFile((LPCWSTR)szPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    if(m_hGetFileSize == INVALID_HANDLE_VALUE||dwFileSize == 0xFFFFFFFF )
    {
        //不存在
    }
    else
    {
        //存在
        dwFileSize = GetFileSize(m_hGetFileSize,NULL); //如果你的文件长度小于DWORD所能表示的范围
        //DWORD dwFileSizeHigh = 0;
        //dwFileSize = GetFileSize(m_hGetFileSize, &dwFileSizeHigh);
        if(dwFileSize == INVALID_FILE_SIZE)
        {
            DWORD dwError = GetLastError(); //得到错误信息
        }
    }