使用C#SevenZipSharp - 压缩时的错误

时间:2013-02-21 23:20:19

标签: c# 7zip sevenzipsharp

我目前正在尝试将SevenZipSharp功能实施到我的项目中。我已经阅读了他们所拥有的文档,并查看了笔记的源代码,但我在查找CompressFilesEncrypted方法时遇到了麻烦。我在archiveName参数上收到一条错误消息“Access is Denied”。

任何成功使用过这个的人都可以就如何完成这个实现给我一些建议吗?

这是我正在使用的代码(看起来非常简单):

        string fileName = Path.GetFileName(filepath);
        string outputDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        try
        {
                        SevenZipCompressor compressor = new SevenZipCompressor();
                        compressor.CompressionMethod = CompressionMethod.Default;
                        compressor.CompressionLevel = CompressionLevel.Normal;
                        compressor.ZipEncryptionMethod = ZipEncryptionMethod.Aes256;
                        compressor.ArchiveFormat = OutArchiveFormat.Zip;
                        **compressor.CompressFilesEncrypted(outputDir, "12345",filepath);**
        }
        catch (Exception exc)
        {
            MessageBox.Show(exc.Message);
        }

非常感谢任何见解!我知道有人必须在此之前完成这项工作:)

1 个答案:

答案 0 :(得分:0)

已更正的代码和问题已解决。更正了以下代码:

SevenZipCompressor compressor = new SevenZipCompressor();
            compressor.CompressionMethod = CompressionMethod.Deflate;
            compressor.CompressionLevel = CompressionLevel.High;
            compressor.ZipEncryptionMethod = ZipEncryptionMethod.Aes256;
            compressor.ArchiveFormat = OutArchiveFormat.Zip;
            compressor.CompressionMode = CompressionMode.Create;
            compressor.EventSynchronization = EventSynchronizationStrategy.AlwaysAsynchronous;
            compressor.FastCompression = false;
            compressor.EncryptHeaders = true;
            compressor.ScanOnlyWritable = true;
            compressor.CompressFilesEncrypted(outputDir, password, filepath);

输出目录需要具有适当扩展名的文件名。原来是问题的一部分。

相关问题