zip文件已经打开了吗?
zip文件会不会正在被使用?

解决方案 »

  1.   

    你的参数没问题,你应该注意到:文件大小这个变量应该设为int64,如果integer很容易溢出出错,表现为-1!是否这个愿意呢?
      

  2.   

    int大小应该够了。而且如果类型不对会有警告的。
    你可以在程序中加入GetLastError函数得到错误码然后去MSDN里面查找到底是什么原因。
      

  3.   

    var
       t:OFSTRUCT;
       h:cardinal;
    begin
    OpenDialog1.Execute ;
    h:=openfile( pchar(OpenDialog1.FileName),t,OF_READ );
    caption:=inttostr(getFileSize(h,nil));
    _lClose(h);在我这里好像没有问题
    建议你看看,getlasterror再试试这个:
    GetCompressedFileSize(pchar(OpenDialog1.FileName ),nil))