Komponent indy IdFTP - opcje

Odpowiedz Nowy wątek
Pytajnik
2005-09-16 10:00
Pytajnik
0

Cześć
Chcę zastosować komponent IdFTP - chodzi o ściąganie pliku za każdą jego modyfikacją na serwerze.
Wiem że opcja na końcu tej instrukcji powoduje:

// Zapis pliku na dysk - gdy ten nie istnieje na dysku
IdFTP1.Get(PlikSerwera,PlikUsera, False);   //tu jest False

//Zapis pliku na dysk (podmiana - nowy z serwera zastępuje stary na kompie)  
IdFTP1.Get(PlikSerwera, PlikUsera, True);  //tu jest True 

{..i tu właśnie mam instrukcje która być może powoduje dociąganie pliku
 - czyli :  Jeżeli plik na serwerze jest większy a na kompie mniejszy to dociąga brakujące bajty}
IdFTP1.Get(PlikSerwera,PlikUsera, False, True);  //tu i to, i to 

No i w tym problem że nie za bardzo wiem co oznaczają te dwie opcje w tej ostatniej instrukcji ?
Być może ta ostatnia zastąpiła by powyższe gdybym znał ustawienia (true czy false?)

Pozostało 580 znaków

2005-09-17 19:43

Rejestracja: 16 lat temu

Ostatnio: 1 rok temu

0

W celu sprawdzania modyfikacji polecam odswierzanie listy i porownywanie ze stara lista (rozmiar pliku)
Nie jestem pewien czy ftp oferuje mozliwosc "dociagania" -jak to nazywasz - reszty pliku :P


Pozostało 580 znaków

Pytajnik
2005-09-18 09:06
Pytajnik
0

Cześć
Właśnie tak zrobiłem - że sprawdzam rozmiary plików.
Podaje przykład - ale to nie jest to :-/ za kazdym razem ściąga mi cały plik niepotrzebnie

     if IdFTP1.Connected then
     try
       BajtyDoPrzeslania:= IdFTP1.Size(PlikSerwera);
       if FileExists(PlikUsera) then
       begin
         PlikUseraSize:= FileSizeByName(PlikUsera);
         PlikSerweraSize:= IdFTP1.Size(PlikSerwera);
         BajtyDoPrzeslania:= PlikSerweraSize - PlikUseraSize; //bajty do zassania
         if  PlikSerweraSize > FileSizeByName(PlikUsera)  then
         begin
           {to poniższe zaremowałem bo wyskakuje mi błąd i nie wiem jak, którą
           opcje ustawić by "dociągał" ? }
           //IdFTP1.Get(PlikSerwera,PlikUsera, False, True);
           DeleteFile(PlikUsera);   //dlatego tu musze skasować plik i...
           //..musiałem dać poniższą instrukcje jak przy brakującym pliku na dysku
           IdFTP1.Get(PlikSerwera,PlikUsera, False); //zapisuje od nowa
         end;
         if PlikSerweraSize < FileSizeByName(PlikUsera) then
         begin
            IdFTP1.Get(PlikSerwera, PlikUsera, True); //zamiana na ściągnięty

         end;
       end else
       begin
         IdFTP1.Get(PlikSerwera,PlikUsera, False);       //zapisuje od nowa
       end;
       IdFTP1.ChangeDir(IdFTP1.RetrieveCurrentDir);
       Status:= 2;
     except
       Status:= 1;
     end;
   except
     Status:= 0;
   End;

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0