onur
onur

Reputation: 374

Ionic Zip cannot zip folder inside folder C#

I am trying to zip a folder using IonicZip library in C#. It is able to zip .txt, .exe, .pdf etc. in the folder, but not able to zip folder in folder.

Folder

It is able to zip MusicLogs.txt and Video.exe but cannot Music folder.Music folder contains some folder also. It doesnt see Music folder even while debugging. My code is :

string zipPath = @"C:\" + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + ".zip"; // zipped file extracts here
string filename = @"E:\"; // the fodler which should be zipped. File must be exist

using (ZipFile zipFile = new ZipFile())
{
    zipFile.Password = "asd";
    zipFile.Encryption = EncryptionAlgorithm.PkzipWeak;
    foreach (string file in Directory.GetFiles(filename)) // this foreach is for getting all files in a folder. 
    {
        zipFile.AddFile(file, "YESMusic"); // set file
    }

    zipFile.Save(zipPath);

}

Where is the problem ? Need a change in AddFile function ? Thanks

Upvotes: 1

Views: 1657

Answers (1)

sujith karivelil
sujith karivelil

Reputation: 29036

This will work:

using (ZipFile zipFile = new ZipFile())
{
    zipFile.Password = "asd";
    zipFile.Encryption = EncryptionAlgorithm.PkzipWeak;          
    // Adding folders in the base directory
    foreach (var item in Directory.GetDirectories(filename))
    {
        string folderName = new DirectoryInfo(item).Name;
        zipFile.AddDirectory(item, folderName);
    }
    // Adding files in the base directory
    foreach (string file in Directory.GetFiles(filename))
    {
        zipFile.AddFile(file); 
    }
    zipFile.Save(zipPath);
}

Upvotes: 2

Related Questions