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

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

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

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com