Удаление объектов можно выполнить несколькими способами. Перечислим их:
1. Удаление файлов посредством указания дочерних секций копирования в параметре DelFiles. То есть в файле скрипта уже есть секция [DestinationDirs], указывающая место расположения файлов и дочерняя секция копирования, содержащая список файлов, скопированных в каталог назначения. Остаётся лишь указать эту же секцию в параметре DelFiles. При этом секции расположения файлов в дистрибутиве ([SourceDisksFiles], [SourceDisksFiles]) не используются. Этот метод чаще всего применяется в секции деинсталляции пакета. Директории этим способом удалить нельзя, только файлы. Пример этого способа:
[DefaultInstall]
CopyFiles=files
[files]
filename.ext
[DestinationDirs]
files= 11
[Uninstall]
DelFiles=files
2. Удаление директорий параметром DelDirs из выполнимой секции. Лучше ставить ниже всех параметров DelFiles, если применяется и такой параметр - в итого сначала удалятся файлы, а затем и директории. В качестве значения к параметру DelDirs указывается дочерняя секция, содержащая просто полные пути к удаляемым каталогам. Можно применять переменные путей. Также можно указывать параметр CleanUp, теоретически предназначенный для предварительной очистки непустых директорий от файлов перед удалением. Это не спасёт от файлов, используемых системой или каким-либо приложением - Вы не сможете удалить такой каталог. Пример этого способа:
[DefaultInstall]
DelDirs=dirs
Cleanup=1
[dirs]
"%24%\Program Files\Program Name"
3. Удаление пустых директорий посредством вызова функции с параметрами из библиотеки интерпретатора AdvancedINF. Этот метод - Windows-команда, которую можно вызывать из любых скриптов. В INF-скрипте её можно вызвать из параметров RunPreSetupCommands и RunPostSetupCommands выполняемой секции. Этот метод удаляет непустые директории. Формат записи таков:
[DefaultInstall]
RunPostSetupCommands=cmd.deldirs
[cmd.deldirs]
rundll32.exe advpack,DelNodeRunDLL32 "%24%\Program Files\Program Name"