//下载过程 procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; SubI,SubJ,CurUrl,DestPath:string; strm:TMemoryStream; begin memo1.Lines.Clear; //建立目录 if not DirectoryExists(girlPic) then MkDir(girlPic); try strm :=TMemoryStream.Create; for I:=1 to OffI do begin for j:=1 to OffJ do begin if (i<10) then SubI:='00'+IntToStr(i) else if (i>9) and (i<100) then SubI:='0'+inttostr(i) else SubI:=inttostr(i); if (j>9) then SubJ:=inttostr(j) else SubJ:='0'+inttostr(j); CurUrl:=Url+SubI+'/images/'; DestPath:=girlPic+SubI+'\'; if not DirectoryExists(DestPath) then ForceDirectories(DestPath); //使用线程,速度能提高N倍以上 if CheckBox1.Checked then begin GetMMThread(CurUrl,DestPath,SubJ); sleep(500); end else //不使用线程 begin try strm.Clear; IdHTTP1.Get(CurUrl+SubJ+'.jpg',strm); strm.SaveToFile(DestPath+SubJ+'.jpg'); Memo1.Lines.Add(CurUrl+' Download OK !'); strm.Clear; IdHTTP1.Get(CurUrl+'tn_'+SubJ+'.jpg',strm); strm.SaveToFile(DestPath+'tn_'+SubJ+'.jpg'); Memo1.Lines.Add(CurUrl+' Download OK !'); except Memo1.Lines.Add(CurUrl+' Download Error !'); end; end; end; end; Memo1.Lines.Add('All OK!'); finally strm.Free; end; end;
procedure TForm1.Button2Click(Sender: TObject); begin Close; end;
procedure TGetMM.Execute; var strm:TMemoryStream; IdGetMM: TIdHTTP; DestFile:string; begin try strm :=TMemoryStream.Create; IdGetMM :=TIdHTTP.Create(nil); try DestFile :=FDestPath+FSubJ+'.jpg'; if Not FileExists(DestFile) then begin strm.Clear; IdGetMM.Get(FMMUrl+FSubJ+'.jpg',strm); strm.SaveToFile(DestFile); end; DestFile :=FDestPath+'tn_'+FSubJ+'.jpg'; if not FileExists(DestFile) then begin strm.Clear; IdGetMM.Get(FMMUrl+'tn_'+FSubJ+'.jpg',strm); strm.SaveToFile(DestFile); end; except end; finally strm.Free; IdGetMM.Free; end; end;
procedure TForm1.GetMMThread(MMUrl, DestPath, SubJ: string); begin RGetMM :=TGetMM.Create(MMUrl,DestPath,SubJ); end;