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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.08.2012, 19:01   #1
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию Копирование папки с подпапками, как? (ф-я из гугла не работает!)

Привет.

Нужно скопировать папку со всем ее содержимым, т.е. со всеми файлами и подпапками.

Гуглил, все ведет к одной функции:
Код:
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(Edit2.Text, ExtractFilePath(Application.ExeName)+dir, false, true);// "dir" была создана заранее
Что делаю не так?

Последний раз редактировалось trafbite; 09.08.2012 в 19:26.
trafbite вне форума
Старый 09.08.2012, 19:28   #2
Putin-mode
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 82
По умолчанию

Вот тут пример разобрали http://expert.delphi.int.ru/question/2223/ или через шелапи http://www.realcoding.net/articles/f...-shellapi.html
Putin-mode вне форума
Старый 09.08.2012, 19:33   #3
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Цитата:
Сообщение от Putin-mode Посмотреть сообщение
Вот тут пример разобрали http://expert.delphi.int.ru/question/2223/ или через шелапи http://www.realcoding.net/articles/f...-shellapi.html
Точно! Разобрался, спасибо!
trafbite вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование папки вместе с содержимым betirsolt Общие вопросы Delphi 7 28.06.2012 18:08
Копирование папки со всем соодержимым GriFFoN PHP 3 26.06.2011 14:05
Копирование из папки мои документы Dima DDM Общие вопросы Delphi 5 05.01.2011 22:46
Как копировать папку с подпапками и файлами tarakan1983 Помощь студентам 6 16.10.2008 03:16