使用SevenZipSharp压缩和提取

时间:2015-10-14 07:40:20

标签: c# 7zip

我尝试使用SevenZipSharp压缩和提取文件,但我收到了以下错误:

  

无法加载7-zip库或内部COM错误!消息:无法加载库。

我的代码:

        string extractFrom = @"C:\Test\Test.7z";
        string extractTo = @"C:\Test2";

        string compressFrom = @"C:\Test2";
        string compressTo = @"C:\Test\Test2.7z";

        SevenZipBase.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll");

        SevenZipCompressor compressor = new SevenZipCompressor();
        compressor.CompressionMode = CompressionMode.Create;
        compressor.TempFolderPath = Path.GetTempPath();
        compressor.ArchiveFormat = OutArchiveFormat.SevenZip;
        compressor.CompressDirectory(compressFrom, compressTo);//Error

        SevenZipExtractor extractor = new SevenZipExtractor(extractFrom);
        extractor.ExtractArchive(extractTo);//Error

错误发生在:

       compressor.CompressDirectory(compressFrom, compressTo);

和at:

       extractor.ExtractArchive(extractTo);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最明显的答案:dll不在给定的路径上。

但我认为你已经尝试过,但如果你混合使用32位和64位应用程序,这也是一个已知问题。因此,如果您的应用程序运行32位且7zip安装为x64,则会抛出此错误。

另见:A reference to .dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component