Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 154

•  TDictionary Custom Sort  6 215

•  Fast Watermark Sources  6 015

•  3D Designer  8 911

•  Sik Screen Capture  6 350

•  Patch Maker  6 769

•  Айболит (remote control)  6 750

•  ListBox Drag & Drop  5 624

•  Доска для игры Реверси  96 186

•  Графические эффекты  6 970

•  Рисование по маске  6 240

•  Перетаскивание изображений  5 142

•  Canvas Drawing  5 510

•  Рисование Луны  5 212

•  Поворот изображения  4 761

•  Рисование стержней  3 366

•  Paint on Shape  2 620

•  Генератор кроссвордов  3 509

•  Головоломка Paletto  2 798

•  Теорема Монжа об окружностях  3 609

•  Пазл Numbrix  2 365

•  Заборы и коммивояжеры  3 046

•  Игра HIP  2 001

•  Игра Go (Го)  1 926

•  Симулятор лифта  2 283

•  Программа укладки плитки  1 987

•  Генератор лабиринта  2 441

•  Проверка числового ввода  2 123

•  HEX View  2 459

•  Физический маятник  2 078

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Копирование содержимого директории, вместе с поддиректориями



Автор: VID

{ **** 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');
// Скопирует содержимое директории C:\a (не не саму директорию) в директорию D:\b







Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте