근데 잘 안되네요..
같은 이름의 파일이 있으면 connot create라고 나오거든요..
소스는요..
var
DimCnt,StrLen : Integer;
TempString : String;
EDIData : Array[1..3] of String;
begin
DimCnt := 1;
For StrLen := 1 to Length(FileString) do
begin
If FileString[StrLen] = '|' Then
begin
EDIData[DimCnt] := TempString;
TempString := '';
Inc(DimCnt);
end
else
TempString := TempString + FileString[StrLen];
End;
EDIData[DimCnt] := TempString;
If CompLocalFile(EDIData) Then
Begin
TempString := GetFileName(EDIData[1]);
BytesToTransfer := IdFTP1.Size(TempString);
lblNowFile.Caption := TempString + '파일을 다운중입니다.';
IdFTP1.Get('/'+GetFileName(EDIData[1]),'c:유통관리'+GetFileName(EDIData[1]), true);
End;
end;
function TForm1.CompLocalFile(const Data : array Of String) : Boolean;
var
MyFile : TFileStream;
FileDate: TDateTime;
Begin
If Not FileExists('c:유통관리'+GetFileName(Data[0])) Then
Begin
Result := True;
exit;
End;
MyFile := TFileStream.Create('c:유통관리'+GetFileName(Data[0]),FmOpenRead);
If MyFile.size <> StrToInt(Data[1]) Then
Begin
Result := True;
Exit;
End;
MyFile.Free;
FileDate := FileDateToDateTime(FileAge('c:유통관리'+GetFileName(Data[0])));
If DateTimeToStr(FileDate) < Data[2] then
Begin
ShowMessage( DateTimeToStr(FileDate) + '||' + Data[2] );
Result := True;
Exit;
end;
Result := False;
이렇게 했는데요..
소스중에서..
IdFTP1.Get('/'+GetFileName(EDIData[1]),'c:유통관리'+GetFileName(EDIData[1]), true);
이부분이요..끝에 true 라고 주면 덮어씌워져야 하는거 아닌가요?
어디를 고쳐야 할지 잘 모르겠어요..
아시는 분 답변 좀 주세요~~ㅡoㅡ
그럼 이만..(__)
프로그램이 실행중이면 덮어씌워지지가 않는걸로 압니다..
프로그램을 열기전에 날짜를 비교해서 업데이트를 하시든지
아님 프로그램을 닫고 윈도우함수를이용하여 업데이트프르그램을 실행시켜서
업데이트가 끝나면 다시 프로그램을 실행시키는 방법도 있을꺼 같은데
좀 귀찮겠죠.
아님 더 좋은방법이 있나요?