compression - c# sevenzipsharp- adding folder to new/existing archive -
i have code compressing folders/files:
sevenzipcompressor compressor = new sevenzipcompressor(); foreach (string listboxitem in listboxtocompress.items) { string choosenpath = listboxitem; int filecount = directory.getfiles(listboxitem).length; int foldercount = directory.getdirectories(listboxitem).length; if (filecount == 0 && foldercount == 0) { messagebox.show("folder " + listboxitem + " empty"); } else { listbox1.items.add("========================================"); listbox1.items.add("compressing. "+listboxitem+" wait..."); listbox1.refresh(); if (file.exists(zipfile) == true) { compressor.compressionmode = compressionmode.append; compressor.archiveformat = outarchiveformat.zip; compressor.compressdirectory(choosenpath, zipfile); ++done; } else { compressor.compressionmode = compressionmode.create; compressor.archiveformat = outarchiveformat.zip; compressor.compressdirectory(choosenpath, zipfile); ++done; } listbox1.items.add("done."); listbox1.refresh(); } }
as can see, i'm taking folders listbox. ex. i'm adding folders compress 1 file.zip listbox looks like:
+c:/test +d:/somefolder
full structure is:
+c:/test |--c:/test/testfile.exe |--c:/test/testfolder d:/somefolder |--d:/somefile.exe
but now, after compression, archive looks like:
+archive.zip |--testfile.exe |--testfolder |--somefile.exe
how create overriding folder. want archive looks like:
+archive.zip |-test |----testfile.exe |----testfolder |-somefolder |----somefile.exe
well... should add line:
compressor.preservedirectoryroot = true;
this option disabled default, after enable- problem magically solved :)
Comments
Post a Comment