简体   繁体   English

Ionic Zip 无法在文件夹 C# 中压缩文件夹

[英]Ionic Zip cannot zip folder inside folder C#

I am trying to zip a folder using IonicZip library in C#.我正在尝试使用 C# 中的 IonicZip 库压缩文件夹。 It is able to zip .txt, .exe, .pdf etc. in the folder, but not able to zip folder in folder.它可以在文件夹中压缩 .txt、.exe、.pdf 等,但不能在文件夹中压缩文件夹。

文件夹

It is able to zip MusicLogs.txt and Video.exe but cannot Music folder.Music folder contains some folder also.它可以压缩 MusicLogs.txt 和 Video.exe,但不能压缩 Music 文件夹。Music 文件夹也包含一些文件夹。 It doesnt see Music folder even while debugging.即使在调试时也看不到 Music 文件夹。 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 ?需要更改 AddFile 函数? Thanks谢谢

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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM