InternetReadFile同一族函数中有没有获得文件长度的,是哪个

解决方案 »

  1.   

    BOOL InternetReadFile(
      HINTERNET hFile,
      LPVOID lpBuffer,
      DWORD dwNumberOfBytesToRead,
      LPDWORD lpdwNumberOfBytesRead
    );Parameters
    hFile 
    [in] Handle returned from a previous call to InternetOpenUrl, FtpOpenFile, GopherOpenFile, or HttpOpenRequest. 
    InternetOpenUrl, FtpOpenFile, GopherOpenFile, or HttpOpenRequest. 不是都可以读长度嘛
      

  2.   

    BOOL InternetReadFile(
      HINTERNET hFile,
      LPVOID lpBuffer,
      DWORD dwNumberOfBytesToRead,
      LPDWORD lpdwNumberOfBytesRead
    );Parameters
    hFile 
    [in] Handle returned from a previous call to InternetOpenUrl, FtpOpenFile, GopherOpenFile, or HttpOpenRequest. 
    InternetOpenUrl, FtpOpenFile, GopherOpenFile, or HttpOpenRequest. 不是都可以读长度嘛
      

  3.   

    DWORD dwNumberOfBytesToRead这个参数就是
      

  4.   

    貌似没有,没有如同Ftp同一族这样的
    DWORD FtpGetFileSize(
      HINTERNET hFile,
      LPDWORD lpdwFileSizeHigh
    );
      

  5.   

    可以发送list命令,然后解析
    再调用InternetReadFile。或者FtpGetFileSize,用这个先得到文件大小,再InternetReadFile
      

  6.   

    HttpQueryInfo(...,HTTP_QUERY_CONTENT_LENGTH Or HTTP_QUERY_FLAG_NUMBER,...)
    or
    CHttpFile::GetLength()有时候并不一定能获取到长度(获取到也不一定是正确的长度)他们好象都是按照http头的Content-Length来获取长度的
    有时候http头并不会包含Content-Length,而可能是chunked方式,一部分一部分传