Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2008, 01:18   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Как копировать папку с подпапками и файлами

Есть функция копирования
Цитата:
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;
Пишу дальше
Цитата:
procedure TForm1.Button1Click(Sender: TObject);

begin

FullDirectoryCopy('c:\1','c:\2');

end;
Компилятор выдает ошибку Not enough actual parameters
Помогите пожалуйста, где я ошибся.
tarakan1983 вне форума Ответить с цитированием
Старый 16.10.2008, 01:24   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Вы указали не все параметры. Надо сделать так:

Код:
FullDirectoryCopy('c:\1','c:\2',False,True);
Всегда рад помочь!

Последний раз редактировалось Terran; 16.10.2008 в 01:28.
Terran вне форума Ответить с цитированием
Старый 16.10.2008, 01:27   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
Вы указли не ве параметры. Надо сделать так:

Код:
FullDirectoryCopy('c:\1','c:\2',False,True);
а что это за параметры?
tarakan1983 вне форума Ответить с цитированием
Старый 16.10.2008, 01:34   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от tarakan1983 Посмотреть сообщение
а что это за параметры?
В строке
Цитата:
function FullDirectoryCopy(SourceDir, TargetDir: string; StopIfNotAllCopied,
OverWriteFiles: Boolean): Boolean;
1) SourceDir- Указываете путь с откуда копировать;
2) TargetDir - Куда копировать;
3) StopIfNotAllCopied - Если False, то продолжает копировать при ошибке, а если True, то перестаёт;
4) OverWriteFiles - Если True, то заменяет уже имеющиеся в директории файлы, а если нет, то пропускает;
Всегда рад помочь!

Последний раз редактировалось Terran; 16.10.2008 в 01:37.
Terran вне форума Ответить с цитированием
Старый 16.10.2008, 01:45   #5
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
В строке

1) SourceDir- Указываете путь с откуда копировать;
2) TargetDir - Куда копировать;
3) StopIfNotAllCopied - Если False, то продолжает копировать при ошибке, а если True, то перестаёт;
4) OverWriteFiles - Если True, то заменяет уже имеющиеся в директории файлы, а если нет, то пропускает;
Спасибо за разъяснение, а как бы мне этот процес визуализировать типа как в файловых менеджерах?
tarakan1983 вне форума Ответить с цитированием
Старый 16.10.2008, 01:51   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
а как бы мне этот процес визуализировать
Посмотрите эту ссылку, может подойдёт:
http://programmersforum.ru/showthrea...E2%E0%ED%E8%E5
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 16.10.2008, 03:16   #7
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
со стандартным windows'ким окном отображающим процес копирования
Меня энто не очень устраивает, хотелось что нибудь своё
tarakan1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как копировать и одновременно переименовывать файлы? eriser Помощь студентам 4 17.01.2008 17:51
как копировать файлы Kaspersky Anti-Virus Personal\5.0\Bases\*.* Podlec Безопасность, Шифрование 3 16.11.2007 11:37
как создать папку matus Помощь студентам 2 05.11.2007 22:19
Как зашифровать папку UnD)eaD)Snake Общие вопросы Delphi 6 15.08.2007 17:14