Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C#/.NET: Creating a CAB and adding files to it without an external library

Tags:

c#

.net

cab

kofax

I'm aware there is a similar question but the marked answer provides a link to an external library which requires several dependencies to be installed on the user's machine.

I don't need extraction or anything else fancy like listing files - I only need to add the entire contents of a folder to a single cabinet file. I know cabinet.dll exists in the \Windows\System32 folder and I'm hoping there's a simple way to interact with this DLL to achieve what I'm trying to do.

Is it possible to do this without an external library? If anyone could point me in the right direction I'd be eternally grateful.

like image 991
Andy E Avatar asked Dec 21 '09 11:12

Andy E


1 Answers

You may take a look at WiX and more specifically the Microsoft.Deployment.Compression.Cab assembly. It has a nice API that allows you to do this:

CabInfo cab = new CabInfo(@"c:\Work\some.cab"); 
cab.Pack(@"C:\Work\folder");

It's dependent on the Microsoft.Deployment.Compression assembly which is standalone so you will need only those two assemblies.

like image 93
Darin Dimitrov Avatar answered Sep 30 '22 09:09

Darin Dimitrov