Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как закачать на ftp сервер папку


Автор: new_user 31.5.2004, 13:11
Пробовал отправлять на ftp сервер отдельные файлы, это выходит. А как можно закачать не отдельные файлы, а папку вместе со всеми содержащимися в ней файлами?
Использовал NFTP.
Буду очень благодарен, если приведете исходничек.

Автор: z-END 31.5.2004, 13:20
точно так-же как и у себя на компеsmile.gif
сначала ее надо на сервере создать, а затем скопировать все файлы с компа на сервер.

Автор: new_user 31.5.2004, 13:24
дело в том, что в этой папке будут лежать еще другие папки и мне бы нехотелось создавать их поотдельности

Автор: Pakshin A. S. 31.5.2004, 13:53
При помощи FindFirst & FindNext делаешь проход по всем файлам и подпапкам нужной тебе дирректории... надеюсь, с реализацией проблем не будет?!

Автор: Pakshin A. S. 31.5.2004, 14:30
Добрый я сегодня. Вот набросал, но не осуждайте, если что:
Код

procedure SendFiles(Dir:string; FtpDir:string);
var
SearchRec:TSearchRec;
FindResult:integer;
begin
if FtpDir <> ''
 then
  begin
   {
   Надо создать директорью на Ftp
   Ftp-сервер/ + FtpDir
   }
  end;
FindResult:=FindFirst(Dir + '*.*', faAnyFile + faHidden + faSysFile + faReadOnly, SearchRec);
while FindResult = 0 do
 begin
  {
  Делаем загрузку файла SearchRec.Name в
  ftp-сервер/ + FtpDir
  }
  FindResult:=FindNext(SearchRec);
 end;
FindClose(SearchRec);
FindResult:=FindFirst(Dir, faDirectory, SearchRec);
while FindResult = 0 do
 begin
  if not ((SearchRec.Name = '.') or (SearchRec.Name = '..'))
   then
     SendFiles(Dir + SearchRec + '\', FtpDir + SearchRec.Name + '/');
  FindResult:=FindNext(SearchRec);
 end;
FindClose(SearchRec);
end;

Код

SendFiles('C:\FtpDir\', '');


Можно и модернизировать, просто я не знаком с технологией NFTP...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)