procedure Tcaaef110.FileDown(cmd: string;LocalName: string);
var
OldCursor: TCursor;
begin
ProgressBar1.Visible := true;
with FTP do
begin
Host := '100.100.10.1';
Port := 21;
Username := 'oracle';
Password := 'oracle';
Disconnect;
Connect;
ChangeDir('/appl/oracle/source/');
TransferType := ftBinary;
OldCursor := Screen.Cursor;
try
Screen.Cursor := crHourGlass;
if FileDate(cmd,false) > GetClientFileDate(LocalName) then begin
Get(cmd, LocalName, True, False);
end;
finally
Screen.Cursor := OldCursor;
end;
ProgressBar1.Visible := false;
end;
end;
function Tcaaef110.GetClientFileDate(cFileName: String) : TDateTime;
var FileHandle : Integer;
begin
FileHandle := FileOpen(cFileName, fmShareDenyNone);
FileHandle := FileGetDate(FileHandle);
Result := FileDateToDateTime(FileHandle);
FileClose(FileHandle);
end;
위 소스는 서버에 있는 파일의 날자와 내PC에 있는 파일의 날짜를 비교하여
서버에 있는 파일의 날짜가 최신이면 파일을 다운로드 받는 소스 입니다.
그런데 내 PC의 날짜를 알기위해 function GetClientFileDate 을 실행 시킨후
다운로드 받으면
"cannot create file 'c:\menu\casjs.exe'. 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스
할 수 없습니다."
란 에러 메세지가 발생합니다..
function GetClientFileDate 를 실행 시키지 않으면 다운로드는 잘되는데 무엇이 문제인지 알수가 없습니다..
서버에 있는 파일의 날자와 내PC에 있는 파일의 날짜를 비교할수 있는 다른 방법이 있는지 아니면
위 에러를 해결할수 있는 방법에 대해 고수님들의 조언 부탁 드립니다.
아래 코드가 잘못