使用SevenZipSharp压缩和提取

问题描述 投票:3回答:1

我正在尝试使用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);

在:

       extractor.ExtractArchive(extractTo);

我怎么解决这个问题?

c# 7zip
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.