Inno Setup: скопируйте папку, вложенные папки и файлы рекурсивно в раздел кода

Есть ли способ просматривать и рекурсивно копировать / перемещать все файлы и подкаталоги каталога в разделе кода? ( PrepareToInstall )

Мне нужно игнорировать определенный каталог, но, используя xcopy он игнорирует все каталоги /default/ , например, и мне нужно игнорировать только определенные.

Раздел « Files » выполняется позднее, когда это необходимо.

    Для рекурсивного копирования каталога программно используйте:

     procedure DirectoryCopy(SourcePath, DestPath: string); var FindRec: TFindRec; SourceFilePath: string; DestFilePath: string; begin if FindFirst(SourcePath + '\*', FindRec) then begin try repeat if (FindRec.Name <> '.') and (FindRec.Name <> '..') then begin SourceFilePath := SourcePath + '\' + FindRec.Name; DestFilePath := DestPath + '\' + FindRec.Name; if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin if FileCopy(SourceFilePath, DestFilePath, False) then begin Log(Format('Copied %s to %s', [SourceFilePath, DestFilePath])); end else begin Log(Format('Failed to copy %s to %s', [SourceFilePath, DestFilePath])); end; end else begin if DirExists(DestFilePath) or CreateDir(DestFilePath) then begin Log(Format('Created %s', [DestFilePath])); DirectoryCopy(SourceFilePath, DestFilePath); end else begin Log(Format('Failed to create %s', [DestFilePath])); end; end; end; until not FindNext(FindRec); finally FindClose(FindRec); end; end else begin Log(Format('Failed to list %s', [SourcePath])); end; end; 

    Добавьте любую фильтрацию, в которой вы нуждаетесь. Посмотрите, как . и .. фильтруют.


    Пример использования см. В моих ответах на вопросы:

    • Копирование скрытых файлов в Inno Setup
    • Как сохранить папку, когда пользователь подтверждает удаление? (Inno Setup) .
    Interesting Posts

    Преобразование трапеции в прямоугольник

    jQuery UI: Как изменить цвет ProgressBar?

    Rails 3 UJS – controller дважды вызывается вызовом link_to: remote

    Преимущества и недостатки цепочки методов и возможность заменить все возвращаемые параметры void самим объектом

    Как перемещать курсор мыши с помощью C #?

    Java – регулярное выражение, содержащее комментарии в коде

    Универсальный инструмент командной строки командной строки на Mac

    Как сделать удаленный вызов REST внутри Node.js? любой CURL?

    Visual Studio – поиск по коду для китайского текста

    Зачем использовать двойной указатель? или Зачем использовать указатели для указателей?

    Обнаружение интернет-соединения iPhone SDK

    Передача аргументов конструктору в VBA

    Каковы недостатки удаления каталогов приложений вместо использования деинсталляторов?

    Альтернатива методу FindMimeFromData в Urlmon.dll, который имеет больше типов MIME

    Windows не может восстановить даже с помощью sfc / scannow

    Давайте будем гением компьютера.