我在项目中引用了dll文件: SevenZipSharp.dll
然后在Form1的顶部我添加:
using SevenZip;
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个我通过按钮单击事件调用的函数:
private void Compress()
{
string source = @"C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_02-08-13";
string output = @"D:\Zipped.zip";
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.CompressDirectory(source, output);
}
Run Code Online (Sandbox Code Playgroud)
我使用了一个断点,错误就行了:
compressor.CompressDirectory(source, output);
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
无法加载7-zip库或内部COM错误!消息:DLL文件不存在
但是我已经引用了dll,为什么会出现这个错误呢?我该如何解决?
解决了这个问题:
private void Compress()
{
string source = @"C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_02-08-13";
string output = @"D:\Zipped.zip";
SevenZipExtractor.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll");
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.CompressDirectory(source, output);
}
Run Code Online (Sandbox Code Playgroud)