Przede wszystkim te sposoby co widzę mimo iż różne pakiety, różnią się wykonaniem, dlatego może stąd ta różnica. Wieki nie bawiłem się modułem ftpsend
. A kiedy pisałem bardzo prosty klient FTP, tylko z możliwością chodzenia po katalogach i przeglądania ich zawartości to nie potrzebowałem tej funkcjonalności co Ty, poza tym testowałem głownie lokalnie na postawionym pod kontrolą Serv-U serwerze FTP. Ale zaraz pokombinuje, jak do czegoś dojdę to wkleje tutaj przykłądowy kod albo dołacze całość. Chociaż wolał bym nie robić nic z tego, bo dojdzie 90585255158 kolejnych pytan. Wedlug mnie powinno się kombinować regurencyjnie, tak jak przy wyszukiwaniu plików funkcjami WinAPI wraz z podkatalogami.
EDIT: ok, mam nadzieję, że nie będę tego żałował. Dołaczone archiwum zawiera: kod, exeka oraz wszystkie potrzebne moduły do skompilowania. Kod działa. Dla 1602 plików na FTPie lokalnym w kilkunastu podkatalogów, skanowane oczywiście od głownego katalogu FTP'a, zajmuje to maksymalnie 160 ms. Dla innego FTP'a, do którego mam dostęp na ftp.host.sk zajmuje to dla 390 plików, ale bardzo dużej ilości podkatalogów od około 16 do lekko ponad 19 sekund. Także myślę, że jest ok.
I zrobiłem, to tak jak opisałem. Ponieważ Ty to zrobiłeś wedlug mnie w obu przypadkach w stylu "z czterech liter" niestety. Takie rzeczy jak wyszukiwanie plików na dysku, nieważne czy lokalnym czy zdalnym najczęściej dokonuje się właśnie przez rekurencję. Mam nadzieję, że kod się przyda. Rób z nim co chcesz, tylko daj znać o autorze oryginału :) A i na przyszłośc kombinuj trochę zanim zapytasz na forum. Fajnie, że ostatnio pomogłeś jednej dziewczynie z problemem z WebAPI Allegro. Plus ode mnie za to. Ale zauważyłem również, że nie radzisz sobie ostatnio z często dosyć banalnym problemami, z którymi za pewne poradził byś sobie sam gdybyś tylko chwilę cierpliwie nad nimi pomyślał. Wiadomo, na forum pomagamy, ale trzeba strać się pomóc sobie samemu :)
Aha, ten kod if Pos('n*', RC.Mask) <> 1
jest użyty nie bez powodu. Otóż z moich testów na lokalnym serwerze pod Serv-U
zawuażyłem, że potrafi on dodawać jako wpis taki kwiatek, który nie jest ani plikiem, ani katalogiem. Po prostu na listę trafia coś co nie powinno. Nie winię za to ani Synapse, ani Serv-U, bo pod Total Commanderem czy WinSCP jest wszystko ok. Tak samo jak z użyciem ftpsend
na unixowych serwerach też jest ok. A i wyszukiwanie po rozszerzeniu - jeżeli potrzebujesz - to już zrób sobie samodzielnie, oczywiście jako parametr dla procedury wyszukującej. I sorry za nieskładny post, ale późna pora. Pisałem na szybko, no i znowu się rozpisałem - niestety ;P