You can make IExpress put files into subdirectories using a technique described by Microsoft. In your install program, you’d need to do something similar to:
@md i386
@xcopy /q /y toastva.exe i386\.
@xcopy /q /y tostrcls.dll i386\.
@xcopy /q /y tostrco2.dll i386\.
@xcopy /q /y toaster.sys i386\.
(You could use move /y
instead of xcopy
, if that’s what you wanted to do.)
This is due to a technical limitation in the way IExpress generates its CAB file. IExpress generates a DDF file which is read by makecab.exe
; this file places all source files in the same destination folder. Thus each source file must have a unique name, regardless of its source directory.
While makecab.exe
itself supports subdirectories, the input DDF file is generated on-the-fly by IExpress, so it would be difficult (if not impossible) to intercept it and make changes before makecab.exe
reads it.
But honestly, if you need subdirectories (and sub-subdirectories…) then you might want to consider using a "real" installer maker. Some examples in no particular order: