Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** 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 г. ***************************************************** } functionFullDirectoryCopy(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: