繁体   English   中英

C#Ionic.Zip ZIP文件,出现多级目录

[英]C# Ionic.Zip ZIP file , Multi-level directory appears

解决方案目录

E:\WebSolution\GenerateFiles
 | NEW HOTEL-4-64-1379.pdf
 | NEW HOTEL-4-64-1379.xls

正确

E:\WebSolution\GenerateFiles
 | NEW HOTEL-4-64-1379.pdf
 | NEW HOTEL-4-64-1379.xls
 | NEW HOTEL-4-64-1379.zip (Extract) 
                       | NEW HOTEL-4-64-1379.pdf
                       | NEW HOTEL-4-64-1379.xls

错误

E:\WebSolution\GenerateFiles
 | NEW HOTEL-4-64-1379.pdf
 | NEW HOTEL-4-64-1379.xls
 | NEW HOTEL-4-64-1379.zip (Extract) 
                   |WebSolution
                       |--|GenerateFiles
                       |--|--|NEW HOTEL-4-64-1379.pdf
                       |--|--|NEW HOTEL-4-64-1379.xls

================================================== ====

public void Main(){

   string path=Server.MapPath("~/GenerateFiles"); 
   string zipPackageFileName=System.IO.Path.Combine(path,"NEW HOTEL-4-64-1379.zip");

   string[] arrFileName=new string[]{
        System.IO.Path.Combine(path,"NEW HOTEL-4-64-1379.pdf"),
    System.IO.Path.Combine(path,"NEW HOTEL-4-64-1379.pdf")
   };   

   CompressFilesToZip(arrFileName,zipPackageFileName);

}

using Ionic.Zip;
public void CompressFilesToZip(String[] arrFileName, string zipPackageFileName)
{
    try
    {
        using (ZipFile zip = new ZipFile())
        {
            zip.AddFiles(arrFileName);
            zip.Encryption = EncryptionAlgorithm.WinZipAes256;
            zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
            zip.Password = PASSWORD_ATTACHMENT;
            zip.Save(zipPackageFileName);
        }
    }
    catch (Exception e)
    {
        throw e;
    }
}

谁能帮我 ? 谢谢!

查看文档 ,我怀疑您想致电

zip.AddFiles(arrFileName, false, "");

这样就不会保留目录层次结构。 可能只是

zip.AddFiles(arrFileName, "");

也会工作; 对我来说还不是很清楚。

(此外,我强烈建议您摆脱方法中的try / catch块-它比无用的情况更糟,因为它只会丢失信息。如果在任何ZipFile方法中引发了异常,则将丢失由于您要抛出异常的方式而导致了完整的堆栈跟踪。)

暂无
暂无

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

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