windows - Using MakeCab.exe & .ddf file (i.e. using directive file) how to specify destination cab filename? -


i have decided use makecab.exe requirement create cab files in application. http://msdn.microsoft.com/en-us/library/bb417343.aspx#microsoftmakecabusersguide

and need store files per given path whether relative or absolute inside cab , extract files original path preserved. using directive file , give input makecab command.

windows command promt zip/compress directory

but cab output stored in folder disk1\1.cab.

please me know how can specify desired cab filename destination (i take cab file name user input)?

also, possible append more files existing cab file in second run of makecab command?

finally found solution.

you can set following 2 variables in directive file identify destination path , name of cab file:

diskdirectorytemplate=template [output directory name template; * replaced disk number]
cabinetnametemplate=template [cabinet file name template; * replaced cabinet number]

description microsoft makecab user's guide

diskdirectorytemplate=template

set output directory name template. 1 directory created each disk of layout.

default: .set diskdirectorytemplate=disk* ; default disk1, disk2, etc.

as makecab processes directive file, create 1 or more disk "images". rather using specific disk format, however, makecab creates 1 subdirectory each disk , places files each disk in appropriate directory. if * exists in variable, replaced disk number. if no * specified, files placed in single directory specified variable.

this variable used if no variable diskdirectoryn exists disk n.

examples:

.set diskdirectorytemplate=c:\excel6\disk*  ; put files in separate dirs .set diskdirectorytemplate=c:\excel6        ; put files in c:\excel6 .set diskdirectorytemplate=                 ; put files in current dir 

cabinetnametemplate=template

sets cabinet file name template.

default: .set cabinetnametemplate=*.cab ; 1.cab, 2.cab, ...

this template used construct file name of each cabinet. * in template replaced cabinet number (1, 2, etc.). variable used if no variable cabinetnamen exists cabinet n.

note: sure expanded cabinet name not exceed limits file system! example, if used "cabinet*.cab", , makecab had create 10 or more cabinets, have cabinet names cabinet10.cab, 9.3, invalid name in fat file system. unfortunately, makecab not detect until had created 9 cabinets!

examples:

.set cabinetnametemplate=excel*.dia  ; excel1.dia, excel2.dia, etc.  .set cabinetnametemplate=*.          ; 1, 2, 3, etc. 

in addition, when files split across cab (in case if cabinet size exceeds limit size) can set subsequent cabinet filenames using variable cabinetnamen:

cabinetnamen=filename [cabinet file name cabinet number n]

cabinetnamen=filename

the cabinet file name specified cabinet.

default: ; default none of these variables defined

if variable not defined particular disk, makecab uses cabinetnametemplate construct cabinet name.

example:

.set cabinetname2=test2.cab 

Comments

Popular posts from this blog

ios - iPhone/iPad different view orientations in different views , and apple approval process -

java Extracting Zip file -

C# WinForm - loading screen -