Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Процедура копирования папки с поддиректориями и файлами [D6, D7]


Андрей ©   (2008-04-07 09:05:00) 

Нашел код, еоторый мне очень понравился. НО!!!!. Копирут только файлы которые находяться в корне. Хотелось бы, чтобы она еще копировала и поддиректории и файлы. Вот код:

function FullDirectoryCopy(SourceDir, TargetDir: string; StopIfNotAllCopied,
 OverWriteFiles: Boolean): Boolean;
var
 SR: TSearchRec;
 I: Integer;
begin
 Result := False;
 SourceDir := IncludeTrailingBackslash(SourceDir);
 TargetDir := IncludeTrailingBackslash(TargetDir);
 if not DirectoryExists(SourceDir) then
   Exit;
 if not ForceDirectories(TargetDir) then
   Exit;

 I := FindFirst(SourceDir + '*', faAnyFile, SR);
 try
   while I = 0 do
   begin
     if (SR.Name <> '') and (SR.Name <> '.') and (SR.Name <> '..') then
     begin

         form1.listbox2.Items.Add(inttostr(SR.Attr));

       if SR.Attr = faDirectory then
         Result := FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
               StopIfNotAllCopied, OverWriteFiles)
       else if not (not OverWriteFiles and FileExists(TargetDir + SR.Name))
         then
         Result := CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir +
           SR.Name), False)
       else
         Result := True;
       if not Result and StopIfNotAllCopied then
         exit;
     end;
     I := FindNext(SR);
   end;
 finally
   SysUtils.FindClose(SR);
 end;
end;


ЮЮ   (2008-04-08 03:43:00) [1]

> не надо ничего менять, ему этот код очень нравится...

Ну так исправление ошибки "красоту кода" не должно нарушить :)


Palladin   (2008-04-07 14:13:00) [2]


> ЮЮ ©   (07.04.08 09:31) [2]

не надо ничего менять, ему этот код очень нравится...


Amoeba   (2008-04-07 14:09:00) [3]

SHFileOperation может поможет?
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91


ЮЮ   (2008-04-07 09:31:00) [4]

замени
 if SR.Attr = faDirectory
на
 if SR.Attr and faDirectory = faDirectory
и будет тебе счастье


Сергей М.   (2008-04-07 09:19:00) [5]

Вопрос-то в чем состоит ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо