Цитата:
Сообщение от NumLock
ну так:
procedure MakeDir(const ADirName: string);
сканируешь локальную папку, создаешь удаленные папки и копируешь в них файлы, рекурсивно.
|
Вот нашел почти готовое решение.
PHP код:
procedure ScanDir(StartDir: string; Mask: string; List: TStrings);
var
SearchRec: TSearchRec;
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 одновременно сканировать папок и получать список. А потом отдавать их на передачу по фтп. Тогда необходимо создавать фаил со список путей файлов? И сколько задач столько и файлов и уже из файлов тягать пути и отдавать на передачу или есть более толковый способ?