Показать сообщение отдельно
  #7  
Старый 09.09.2011, 11:32
ujanin ujanin вне форума
Прохожий
 
Регистрация: 07.09.2011
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
ну так:
procedure MakeDir(const ADirName: string);
сканируешь локальную папку, создаешь удаленные папки и копируешь в них файлы, рекурсивно.
Вот нашел почти готовое решение.
PHP код:
procedure ScanDir(StartDirstringMaskstring; List: TStrings);
var
  
SearchRecTSearchRec;
begin
  
if Mask '' then
    Mask 
:= '*.*';
  if 
StartDir[Length(StartDir)] <> '\' then
    StartDir := StartDir + '
\';
  if FindFirst(StartDir + Mask, faAnyFile, SearchRec) = 0 then
  begin
    repeat Application.ProcessMessages;
      if (SearchRec.Attr and faDirectory) <> faDirectory then
        List.Add(StartDir + SearchRec.Name)
      else if (SearchRec.Name <> '
..') and (SearchRec.Name <> '.')thenbegin
        List.Add(StartDir + SearchRec.Name + '
\');
      ScanDir(StartDir + SearchRec.Name + '
\', Mask, List);
  end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;

Пример вызова, параметры 1. имя папки 2. маска, по умолчанию *.* 3. хранилище для резульатат, любой наследник от TString, например TStringList

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Clear;
  ScanDir('
c:', '', ListBox1.Items);
  Label1.Caption := IntToStr(ListBox1.Items.Count);
end; 
Источник: http://www.delphisources.ru/pages/fa...r_subdirs.html

Т.е. я получил список файлов в папке, подпапке. Теперь надо как-то передать все это, так что бы подпапки создавались на фтп и заливались файлы туда. Только что читал про рекурсию, разбираюсь.

Но заглядывая вперед, как мне можно хранить список файлов для многозадачной передачи? Изначально же не известно сколько необходимо выполнять задач. Я веду к тому что в примере файлы выводятся в ListBox. А в много задачной нужно будет и 100 одновременно сканировать папок и получать список. А потом отдавать их на передачу по фтп. Тогда необходимо создавать фаил со список путей файлов? И сколько задач столько и файлов и уже из файлов тягать пути и отдавать на передачу или есть более толковый способ?
Ответить с цитированием