Prosty program porównujący istnienie pliku w internecie

0

Witajcie,

Mam mała rozgryzkę i nie umiem sobie z nią poradzić.
Wrzucam 10 tysięcy zdjęć na FTPA i robie w excelu do nich linki.

Wolałbym nie klikać każdego linka z osobna i patrzeć czy zdjęcie się odpala dlatego wolałbym zrobić jakiś prosty program w którym np. w listboxa czy memo wrzucam listę linków a on z automatu sprawdza tylko czy plik jest czy nie i odpowiedź zwraca jako dowolny znak ( nawet 0 lub 1 ), żebym wiedział, które linki trzeba poprawić albo które zdjecia trzeba ponownie wgrać na serwer.

za każdą pomoc serdeczne bóg zapłać :)

Pozdro
Adaxus

0

No i w czym masz konkretnie problem? Jeżeli to linki FTP to w Delphi najłatwiej (bo nie trzeba nic zewnętrznego pobierać) to zrobić za pomocą Indy a wiec IdFTP łączysz się z serwerem i listujesz folder później sprawdzasz które pliki istnieją na liście. Jak szukasz gotowca to na pewno nie za bóg zapłać.

0

Gotowca nie szukam tylko dobre ukierunkowanie.

Linki mam normalne w postaci http://xxxxxxxxxxxxxxxxxxxxx.jpg i chodzi mi tylko o to, która funkcja umożliwi mi najprostrze porównanie i oddanie wyniku w postaci cyfry.

0

Podpinam się pod temat i zpaytam jak za pomocą INdy sprawdzić czy plik istnieje na FTP albo na HTTP bez pobierania go?

2

Linki HTTP jeszcze łatwiej najprostsza wersja programu (bez tworzenia własnego wątku) to użycie IdHTTP i IdAniFreeze powiedzmy że w CheckListBox są linki to najprostszy kod (bez obsługi SSL czyli https:// tylko samo http://) sprowadza się do:

var
  i: Integer;
begin
  IdHTTP.HandleRedirects:= True;
  for i:= 0 to chlbFileList.Count - 1 do
  begin
    try
    IdHTTP.Head(chlbFileList.Items[i]);
    chlbFileList.Checked[i]:= IdHTTP.ResponseCode = 200;
    except
      //ignorujemy bledy
    end;
  end;
end;
0

powiedzmy ze twoje rozwiazanie byloby najlepsze tylko jesli natrafi na martwy link to nie przechodzi dalej, albo po prostu konczy po dluzszym czasie prace nie zaznaczajac pózniejszych checkboxów, które występują po tym wadliwym...

0

Na pewno dosłownie wykorzystałeś mój kod łącznie z blokiem try except? Przecież właśnie po to jest aby ignorować błędy połączenia (czyli martwe linki).

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