> ZipDelete , v1.00 20-Nov-2001 JGH: Initial version 7 Goes through Zip file, comparing to dir structure (< Produces a deletefile to remove objects not in zipfile 2: <: F zipinfo% 39,dskinfo% 39 P* ctrl% 31,name% 79:X%=ctrl%:Y%=X%256 Zin%=0:out%=0:=P+16*1024 d: n$ :CloseAll:" at line ";: x: %"Zipfile to reference: "zipfile$ %"Directory to scan: "dskpath$ %"Deletefile to create: "delfile$ : out%=(delfile$) 1#out%,"| Delfile to remove superflous files" Scan("") .#out%:out%=0:"SetType "+delfile$+" Obey"   : " "Here"=zipfile, "There"=disk Scan(path$) 9ScanHere(1): If zip=file, disk=dir -> remove dir :ScanThere : If disk=file, zip<>file, -> remove file )ScanHere(2): Go into subdirectories " ,: 6ScanHere(for%) @ i%,l%,r% J013;"Zip";for%;":";path$,2);(11);11,8); T ^ hX l%=i%:ș "OS_GBPB",10,zipfile$+path$,zipinfo%,1,i%,40 ,,,r%,i%;A%:(A%1):r%=0 rA zipinfo%?39=13:fn$=$(zipinfo%+20):fn$=fn$,fn$+0,0)-1) | zipt%=zipinfo%!16 D for%=1 needs to match type=3; for%=2 needs to not match type=3 I (up(fn$)<>"!!METADATA" fn$<>46 (zipt%=for% for%=0)) r%=0  r%=1 Q PRINTCHR$13;"Zip";for%;":";MID$(path$,2);".";fn$;SPC(11);STRING$(11,CHR$8); 9 zipt%=2:Scan(path$+"."+fn$) CheckOtherEnd   r%=0  : CheckOtherEnd )dskt%=file(dskpath$+path$+"."+fn$,5) .dskt%=2:DelOther(dskpath$+path$+"."+fn$)  : ScanThere  idx%,last%,ret% &)13;"Disk:";path$,2);(11);11,8); 0 : Df last%=idx%:ș "XOS_GBPB",10,dskpath$+path$,dskinfo%,1,idx%,40 ,,,ret%,idx%;A%:(A%1):ret%=0 NA dskinfo%?39=13:fn$=$(dskinfo%+20):fn$=fn$,fn$+0,0)-1) X dskt%=dskinfo%!16 b& up(fn$)<>"!!METADATA" ret%=0 l ret%=1 v. zipt1%=file(zipfile$+path$+"."+fn$,5) 3 zipt2%=file(zipfile$+path$+"."+fn$,10),5) L zipt1%=0 zipt2%=0:DelOther(dskpath$+path$+"."+fn$): idx%=last%   ret%=0  : DelOther(A$) #out%,"Wipe "+A$+" FR~C~V"  : ݤfile(A$,A%) 8ș "XOS_File",A%,A$ X%?0,,X%!2,X%!6,X%!10,X%!14;A% (A%1):=0 =X%?0 :  CloseAll "in%=in%:in%:A%=in%:in%=0:#A%  'out%=out%:out%:A%=out%:out%=0:#A% * 4: >ݤup(A$): B$:A$="":="" H7B$=B$+(A$ (&DF (A$<"@"))):A$=A$,2):A$="":=B$