Пятница, 27.06.2025, 21:50
Приветствую Вас Гость | RSS
Главная | Копирование содержимого директории, вместе с поддиректориями - Кладовка ) | Регистрация | Вход
Статистика
Форма входа
Друзья сайта
GG blog
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Копирование содержимого директории, вместе с поддиректориями
leosunДата: Вторник, 23.03.2010, 19:39 | Сообщение # 1
Майор
Группа: Администраторы
Сообщений: 89
Награды: 0
Репутация: 0
Статус: Offline
Code
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Копирование содержимого директории, вместе с поддиректориями.

Фукция копирует СОДЕРЖИМОЕ директории SourceDir в директорию TargetDir.
Копируются все файлы, подкаталоги, и файлы находящиеся в этих подкаталогах.

Аргумент StopIfNotAllCopied: если значение этого аргумента = True,
то при первой же ошибке копирования файла или папки, работы функции
прекратится а функуция вернёт False. В случае если этот аргумент = False,
то ошибки копирования учитываться не будут.

Аргумент OverWriteFiles: если True, то существующие файлы будут переписаны.

Зависимости: SysUtils, FileCtrl, Windows
Автор:       VID, snap@iwt.ru , ICQ:132234868, Махачкала
Copyright:   VID
Дата:        31 января 2003 г.
***************************************************** }

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
         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;

Пример использования:  
FullDirectoryCopy('C:\a', 'D:\b');


FotoCash.ru - оплот стабильного конверта

Получи виртуального питомца

 
  • Страница 1 из 1
  • 1
Поиск:

Создание сайтов Copyright MyCorp © 2025