TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Ervin Slavotic
NA
10
10.1k
SEVENZIP FOLDER COMPRESSION. USING SEVENZIP DLLS
Apr 29 2013 11:37 AM
Hi All,
I need help in this code... for compressing directories in c# using sevensharp dlls.
http://sevenzipsharp.codeplex.com/
...
so far the follwing code will create an empyt archvie... so how to add files to it?...
class SevenSync
{
public void CompressFolder(string FolderToCompress, string destination)
{
List<string> subfiles = new List<string>(Directory.GetFiles(FolderToCompress));
FileInfo fi = new FileInfo(FolderToCompress);
StringBuilder output_7zip_File = new StringBuilder(FolderToCompress + Path.DirectorySeparatorChar + fi.Name + @".7z");
string output_stringBuilder = output_7zip_File.ToString();
Console.WriteLine("Output destination : " + output_stringBuilder);
foreach (string file in subfiles)
{
Console.WriteLine("Files to Compress : " + file);
// compressor.BeginCompressFiles(output_stringBuilder, file);
CompressFileLZMA(file, output_stringBuilder);
AddToArchive(file);
}
}
//___________________________________________________________
////////////////////////////////////////////////////////////|
// C O M P R E S S F I L E |
//_________using LZMA algo__________________________________|
////////////////////////////////////////////////////////////|
public void CompressFileLZMA(string inFile, string outFile)
{
Int32 dictionary = 1 << 23;
Int32 posStateBits = 2;
Int32 litContextBits = 3; // for normal files
// UInt32 litContextBits = 0; // for 32-bit data
Int32 litPosBits = 0;
// UInt32 litPosBits = 2; // for 32-bit data
Int32 algorithm = 2;
Int32 numFastBytes = 128;
string mf = "bt4";
bool eos = true;
bool stdInMode = false;
CoderPropID[] propIDs = {
CoderPropID.DictionarySize,
CoderPropID.PosStateBits,
CoderPropID.LitContextBits,
CoderPropID.LitPosBits,
CoderPropID.Algorithm,
CoderPropID.NumFastBytes,
CoderPropID.MatchFinder,
CoderPropID.EndMarker
};
object[] properties = {
(Int32)(dictionary),
(Int32)(posStateBits),
(Int32)(litContextBits),
(Int32)(litPosBits),
(Int32)(algorithm),
(Int32)(numFastBytes),
mf,
eos
};
try
{
using (FileStream inStream = new FileStream(inFile, FileMode.Open))
{
using (FileStream outStream = new FileStream(outFile, FileMode.Create))
{
SevenZip.Compression.LZMA.Encoder encoder = new SevenZip.Compression.LZMA.Encoder();
encoder.SetCoderProperties(propIDs, properties);
encoder.WriteCoderProperties(outStream);
Int64 fileSize;
if (eos || stdInMode)
fileSize = -1;
else
fileSize = inStream.Length;
for (int i = 0; i < 8; i++)
{
outStream.WriteByte((Byte)(fileSize >> (8 * i)));
}
encoder.Code(inStream, outStream, -1, -1, null);
}
}
}
catch (Exception e)
{
Console.WriteLine("ERROR : " + e.Message);
}
}
//___________________________________________________________
////////////////////////////////////////////////////////////|
// A D D TO A R C H I V E |
//__________________________________________________________|
////////////////////////////////////////////////////////////|
public void AddToArchive(string archiveFile)
{
}
}
thanks alot
regards
Reply
Answers (
7
)
SEVENZIP FOLDER COMPRESSION. USING SEVENZIP DLLS
c# code upload file on Secure FTP