안녕하세요..
요번 문제는 ftp 문제입니다..
ftp를 통해서 화일을 다운로드하고 업로드할려구 합니다..
informix에 해당 화일이 있는 경우는 다운로드, 업로드가 잘 됩니다.
밧트 있지 않은 화일을 다운로드 할려구하면 에러가 발생합니다.
에러처리를 위해 try-except를 했는데도 걸리지 않더군요..(질긴 놈입니다.--;)
또한 초기에 화일이 없으니깐 에러가 나구요..
해당 화일이 없음을 체크한후 어떤 시점에서 경고 메세지를 보여 주워야 할지 모르겠습니다.
--->부분에서 에러가 납니다.
procedure TDMcondition_f.tbl_conditionAfterScroll(DataSet: TDataSet);
var
oleV : OleVariant;
filepath : string;
begin
if tbl_condition.RecordCount = 0 then
begin
filepath := ExtractFilePath(ParamStr(0)) + 'uniBack.html';
Condition_f.WebBrowser_condition.Navigate(filepath, oleV, oleV, oleV, oleV);
end
else
begin
if not FileExists(ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' +
tbl_condition.FieldbyName('cdtfile').AsString) then
begin
NMFTP_condition.Connect;
NMFTP_condition.Mode(MODE_BYTE);
NMFTP_condition.ChangeDir('./kiestongil/condition');
try
---->
NMFTP_condition.Download(tbl_condition.fieldbyname('cdtfile').AsString,
ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' + tbl_condition.FieldbyName('cdtfile').AsString);
<------
finally
NMFTP_condition.Disconnect;
end;
filepath := ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' +
tbl_condition.FieldbyName('cdtfile').AsString;
Condition_f.WebBrowser_condition.Navigate(filepath, oleV, oleV, oleV, oleV);
Condition_f.pnl_mode.Caption := '다운로드 중입니다.';
end;
end;
end;
고수님 수고하시공..하하 빠른 대답을 부탁합니다.
> 안녕하세요..
>
> 요번 문제는 ftp 문제입니다..
> ftp를 통해서 화일을 다운로드하고 업로드할려구 합니다..
> informix에 해당 화일이 있는 경우는 다운로드, 업로드가 잘 됩니다.
> 밧트 있지 않은 화일을 다운로드 할려구하면 에러가 발생합니다.
> 에러처리를 위해 try-except를 했는데도 걸리지 않더군요..(질긴 놈입니다.--;)
> 또한 초기에 화일이 없으니깐 에러가 나구요..
> 해당 화일이 없음을 체크한후 어떤 시점에서 경고 메세지를 보여 주워야 할지 모르겠습니다.
> --->부분에서 에러가 납니다.
>
> procedure TDMcondition_f.tbl_conditionAfterScroll(DataSet: TDataSet);
> var
> oleV : OleVariant;
> filepath : string;
> begin
> if tbl_condition.RecordCount = 0 then
> begin
> filepath := ExtractFilePath(ParamStr(0)) + 'uniBack.html';
> Condition_f.WebBrowser_condition.Navigate(filepath, oleV, oleV, oleV, oleV);
> end
> else
> begin
> if not FileExists(ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' +
> tbl_condition.FieldbyName('cdtfile').AsString) then
> begin
> NMFTP_condition.Connect;
> NMFTP_condition.Mode(MODE_BYTE);
> NMFTP_condition.ChangeDir('./kiestongil/condition');
> try
> ---->
> NMFTP_condition.Download(tbl_condition.fieldbyname('cdtfile').AsString,
> ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' + tbl_condition.FieldbyName('cdtfile').AsString);
> <------
> finally
> NMFTP_condition.Disconnect;
> end;
> filepath := ExtractFilePath(ParamStr(0)) + 'TempDocsCondition' +
> tbl_condition.FieldbyName('cdtfile').AsString;
> Condition_f.WebBrowser_condition.Navigate(filepath, oleV, oleV, oleV, oleV);
> Condition_f.pnl_mode.Caption := '다운로드 중입니다.';
> end;
> end;
> end;
>
>
> 고수님 수고하시공..하하 빠른 대답을 부탁합니다.
제가 NMFTP 콤포넌트를 안써봐서리 정확한 답변을 드릴 수 없지만
제가 보기에는 서버에 파일이 없어서 다운을 못 받는것이 exception
이 걸릴만큼 심각한 에러인지 의심이 가서요
기본적으로 FTP 는 두개의 통신 채널을 사용합니다
하나는 일반적으로 알고있는 파일을 주고받는 채널과
사용자의 눈에 보이지 않는 제어 채널입니다
혹시 NMFTP 가 제어 채널의 값을 사용자에게 열어주지 않나요?
제어 채널에는 예를들어 다음과 같은 메시지가 오고갑니다
먼저 서버의 theme0723.txt 파일을 달라고(download, retrieve) 알린다
RETR theme0723.txt
만약 서버에 해당 파일이 없다면 서버는 클라이언트에 다음과 같은
메시지를 제어 채널로 보냅니다
550 theme0723.txt: No such file or directory.
그러니까 제어 채널로 받은 "550 theme0723.txt: No such file or directory."
메시지를 NMFTP 는 받을 수 있는지 알아보면 될듯합니다