Ok. This problem was solved. The incompatibility with the WinZip remains. Thanks Alfeu R. Peters wrote: >Found the problem (at least I think I have) > >In the file ZMaster.pas >in the function TZMaster.List >(at about line 661) > > Result := fErrCode; > > if not Active then > begin > FDelaying := FDelaying + [zdiList]; > exit; > end; > >{$IFNDEF NO_SPAN} > // Locate last of multi volume or last disk of split > r := GetLastVolume(FZipFileName, EOC, TRUE); > if r < 0 then > exit; // error exception should been >thrown when detected > if r = 1 then // Don't complain - this may intentionally be a new zip >file. >{$ELSE} > if (FZipFileName = '') or not FileExists(FZipFileName) then >{$ENDIF} > begin { let user's program know >there's no entries } > if Assigned(FOnDirUpdate) then > FOnDirUpdate(Owner); > Exit; > end; > > FInfileName := FZipFileName; > FDrive := ExtractFileDrive(ExpandFileName(FInFileName)) + '\'; > FDriveFixed := IsFixedDrive(FDrive); > GetDriveProps; > >{$IFDEF NO_SPAN} > >the lines > > FInfileName := FZipFileName; > FDrive := ExtractFileDrive(ExpandFileName(FInFileName)) + '\'; > FDriveFixed := IsFixedDrive(FDrive); > GetDriveProps; >need to be moved to before r:= GetLastVolume > > Result := fErrCode; > > if not Active then > begin > FDelaying := FDelaying + [zdiList]; > exit; > end; > >// the 4 moved lines > FInfileName := FZipFileName; > FDrive := ExtractFileDrive(ExpandFileName(FInFileName)) + '\'; > FDriveFixed := IsFixedDrive(FDrive); > GetDriveProps; > >{$IFNDEF NO_SPAN} > // Locate last of multi volume or last disk of split > r := GetLastVolume(FZipFileName, EOC, TRUE); > if r < 0 then > exit; // error exception should been >thrown when detected > if r = 1 then // Don't complain - this may intentionally be a new zip >file. >{$ELSE} > if (FZipFileName = '') or not FileExists(FZipFileName) then >{$ENDIF} > begin { let user's program know >there's no entries } > if Assigned(FOnDirUpdate) then > FOnDirUpdate(Owner); > Exit; > end; > >// these 4 lines moved >// FInfileName := FZipFileName; >// FDrive := ExtractFileDrive(ExpandFileName(FInFileName)) + '\'; >// FDriveFixed := IsFixedDrive(FDrive); >// GetDriveProps; > >{$IFDEF NO_SPAN} > >The problem was that GetLastVolume puts it's name into FInFileName but this >was being reset, causing it to truncated and the number added - of course it >did not exist. >Hope this fixes the problem. (it did on mine). >Will prepare an update soon. >- Russell Peters > >----- Original Message ----- >From: "Alfeu Marcatto" <alfeu@xxxxxxxxxxxxxx> >To: <delphizip@xxxxxxxxxxxxx> >Sent: Saturday, August 21, 2004 7:42 AM >Subject: [delphizip] Re: Error in spanned files > > >I think that I understood part of the problem. > >The error occur in ZMaster.pas in > procedure TZMaster.CreateMVFileName(var FileName: string; >StripPartNbr: Boolean); > >During Central Directory build CreateMVFileName is called twice by > function TZMaster.IsRightDisk: Boolean; >First: CreateMVFileName('F:\Temp\Teste2.zip', True) > then the error occur because stripPartNbr is not necessary. > In CreateMVFileName the routine below extract the extension of file >name and also striplen (6 characteres and not 3) > FileName := Copy(FileName, 1, length(FileName) - > Length(ExtractFileExt(FileName)) - StripLen) + > Copy(IntToStr(1001 + FDiskNr), 2, 3) + ExtractFileExt(FileName); > then filename = F:\Temp\Tes007.zip >Second: CreateMVFileName('F:\Temp\Teste2007.zip', True) > this is correct because is necessary extract 6 characteres then > FileName = Teste2.zip > >I change the first striplen to 0 and the error not occur. >Winzip don't expand but ZipMaster expand correctly. > >IsRightDisk is called twice by > procedure TZMaster.GetNewDisk(DiskSeq: Integer); > First to DiskSeq = 6 (Copy(IntToStr(1001 + FDiskNr) change to 007) > Second to DiskSeq = 7 (Copy(IntToStr(1001 + FDiskNr) change to 008) > >This both files have part of Central Directory. > >I answer your questions below. > >Alfeu > >Roger Aelbrecht wrote: > > > >>Roger Aelbrecht wrote: >> >> >> >> >>>Alfeu, >>> >>>I think I could manage to have the same kind of error as you did >>>For now it is not necessary to send me the files. >>>I will try to find out what is wrong and how to solve it. >>> >>> >>> >>> >>> >>Unfortunately the error I found is in a peace of code that is only in >>ZipBuilder not in ZipMaster so I still could not reproduce your problem. >> >>To help us is it possible for you to go in debug mode. >>The error you show should normally produce an exception and it would >>help a lot to know at what line that exception is thrown. >>I don't use Delphi so I cannot tell you how to do it. >> >> >> >> >> >procedure TZMaster.GetNewDisk(DiskSeq: Integer); > raise EZipMaster.CreateResDisp(DS_NoInFile, TRUE) > > > >>2nd question, after the files are created ( whit error), if you start >>a new process and set the file name to Test 2.zip. >>Does it show an error? >> >> >> >> >> >Yes. Same error. > > > >>Can you do an extract/test on this file with ZipMaster? >>If extract/test works then nothing is wrong with the archive. >> >> >> >> >> >Yes. The extract is ok. > > > >>3rd sorry for asking the same thins again but I want to be sure that we >>got the correct information. >> >>>From what I read from all your posting you use as ZipFileName >>FMain.ZipMaster1.ZipFileName := 'F:\Temp\Teste 2.zip'; >> >>and you get the error, from you message as >> >>Teste 2 - ERRO 0: Copying: Central Directory >>Teste 2 - ERRO 0: Trace : GetNewDisk Opening: F:\Temp\Test007.zip >>(F:\Temp is the destination directory) >>Teste 2 - ERRO 11001: Input file does not exist >> >>Is the file name F:\Temp\Test007.zip the correct name in the message? >> >> >> >> >> >See above > > > >>Did ZipMaster create files with names 'Teste 2001.zip' to 'Teste 2008.zip' >> >> >? > > >>If all the above filenames are correct we need to find out why ZipMaster is >>looking for 'Test007.zip' were it should look for 'Teste 2007.zip' >> >> >> >> >> >> >I did the test with 'Teste2.zip' > > > >>Roger Aelbrecht >>http://home.tiscali.be/driehoeksw >> >>----------- >>To unsubscribe from this list, send an empty e-mail >>message to: >> delphizip-request@xxxxxxxxxxxxx >>and put the word unsubscribe in the subject. >> >> >> >> >> > >----------- >To unsubscribe from this list, send an empty e-mail >message to: > delphizip-request@xxxxxxxxxxxxx >and put the word unsubscribe in the subject. > > > > > ----------- To unsubscribe from this list, send an empty e-mail message to: delphizip-request@xxxxxxxxxxxxx and put the word unsubscribe in the subject.