Q&A

  • DownLoad받으면 중간에 에러가 뜹니다.
Unix서버에 있는 Down.txt파일을 읽어서 파일안에 이름이 저장된 파일들을 다운로드

받는 프로그램입니다. 작은파일은 여러개 받아도 문제가 없지만 파일이 크면

하나를 받더라도 에러가 뜹니다.



procedure TForm1.pDownFileLoad;

Var TmpList : TStringList;

i : Integer;

Begin

TmpList := TStringList.Create;

NMFTP1.ChangeDir('Tess_Install');

NMFTP1.Download('Down.txt','Down.txt');

tmpList.LoadFromFile('Down.txt');

For i := TmpList.Count-1 DownTo 0 Do

Begin

If Trim(TmpList.Strings[i]) = '' Then

Begin

TmpList.Delete(i);

end;

End;

For i := 0 To TmpList.Count-1 Do

Begin

NMFTP1.Download(TmpList.Strings[i],'C:Tess'+TmpList.Strings[i]);

End;

End;



project FtpTransfer.exe raised exception class EAbortError with message

'socket send aborted'.라는 에러가 뜹니다.

For문을 돌리면 연속으로 다운로드 받을때 어떻게 받아야하지요?

For i := 0 To TmpList.Count-1 Do

Begin

NMFTP1.Download(TmpList.Strings[i],'C:Tess'+TmpList.Strings[i]);

End;

이렇게 하면 되나요?

1  COMMENTS
  • Profile
    김지엽 2001.02.16 03:43
    아마도 델파이의 소켓이 가지고 있는 자체 에러 때문일거 같습니다. 얼마까지인지는 기억 못하겠는데, 일정 이상의 크기를 지닌 엎/다운로딩시에는 에러가 발생한다는 것을 잡지에서 읽었거든요..? 마이크로 소프트웨어 올해 1월호 델파이 란에서 읽었습니다.



    다운로딩시에 큰 파일은 에러나는 문제.. 저도 예전에 몇번 겪었던 일인데 이유를 도통 몰랐거든요..



    호야 wrote:

    > Unix서버에 있는 Down.txt파일을 읽어서 파일안에 이름이 저장된 파일들을 다운로드

    > 받는 프로그램입니다. 작은파일은 여러개 받아도 문제가 없지만 파일이 크면

    > 하나를 받더라도 에러가 뜹니다.

    >

    > procedure TForm1.pDownFileLoad;

    > Var TmpList : TStringList;

    > i : Integer;

    > Begin

    > TmpList := TStringList.Create;

    > NMFTP1.ChangeDir('Tess_Install');

    > NMFTP1.Download('Down.txt','Down.txt');

    > tmpList.LoadFromFile('Down.txt');

    > For i := TmpList.Count-1 DownTo 0 Do

    > Begin

    > If Trim(TmpList.Strings[i]) = '' Then

    > Begin

    > TmpList.Delete(i);

    > end;

    > End;

    > For i := 0 To TmpList.Count-1 Do

    > Begin

    > NMFTP1.Download(TmpList.Strings[i],'C:Tess'+TmpList.Strings[i]);

    > End;

    > End;

    >

    > project FtpTransfer.exe raised exception class EAbortError with message

    > 'socket send aborted'.라는 에러가 뜹니다.

    > For문을 돌리면 연속으로 다운로드 받을때 어떻게 받아야하지요?

    > For i := 0 To TmpList.Count-1 Do

    > Begin

    > NMFTP1.Download(TmpList.Strings[i],'C:Tess'+TmpList.Strings[i]);

    > End;

    > 이렇게 하면 되나요?