当前位置: 首页 > 编程语言 > C#

如何将此代码与Sevenzipsharp一起使用?Share

时间:2023-04-11 02:32:03 C#

我如何将此代码与Sevenzipsharp一起使用?iv尝试了许多不同的方法来让它工作,我基本上可以工作,但我无法获得WaitForExit();像他们在这里一样工作...那么我如何将其转换为使用sevenzip?由于我无法让它工作,并且我的SFX已设置密码,因此除了使用该程序以及添加7z.DLL之外无法访问它们,我无法添加它,因为我收到错误消息:无法添加对7za的引用。dll。请确保该文件可访问并且是有效的程序集或COM组件。字符串tempFolder=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);System.Diagnostics.Processdefrag1=System.Diagnostics.Process.Start(@"AusLogics_Defrag.exe",string.Format("-o{0}-y-Pthisisthepass",tempFolder));defrag1.WaitForExit();stringexecutableDirectoryName=Path.GetDirectoryName(Application.ExecutablePath);System.Diagnostics.Processdefrag2=System.Diagnostics.Process.Start(tempFolder+"\"+"AusLogics_Defrag"+"\"+"DiskDefrag.exe","");defrag2.WaitForExit();System.IO.Directory.Delete(tempFolder+"\"+"AusLogics_Defrag",true);新:好的,这是我目前所拥有的,但我收到错误“无法加载7-zip库或内部COM错误!消息:无法加载库”SevenZipExtractor.SetLibraryPath("7z.dll");//不知道这个需要还是不需要SevenZipCompressor.SetLibraryPath("7z.dll");//不知道这是否需要stringtempFolder=Environment.GerFolderPath(Environment.SpecialFolder.ApplicationData);SevenZipExtractordefrag=newSevenZipExtractor(@"ProgramsOptimizeAuslogics_Defrag.7z");defrag.ExtracArchive(string.Format("-o{0}-y-PThisisthepass",tempFolder));从.NET项目中引用SevenZipSharp.dll并确保将7zDLL复制到目标生成后事件输出目录由于7z.dll不是.NET程序集,因此.NET项目不能直接引用它。”Couldnotload7-ziplibraryorinternalCOMerror典型的解释有两种!消息:无法加载库”:显然,找不到7zDLL。在这种情况下,在进行任何相关的SevenZipSharp调用之前,使用DLL的完整路径调用SevenZipCompressor/SevenZipExtractor.SetLibraryPath()。相对路径也应该有效,但是如果某些代码更改了进程的当前目录,则尝试绝对路径。获得绝对路径的一种策略是使用执行程序集的路径,请参见下面的示例。引用的DLL的体系结构与当前进程不匹配。例如,您的.NET程序集正在运行x64,但您正在引用7z.dll的32位版本。在这种情况下,您需要引用7z64.dll。从SevenZipSharp的分发DLL二进制文件下载7-Zip确保没有其他不匹配项并确保您使用的是正确的版本。这里是一个示例,说明如何设置7z.dll的绝对路径(如果它与使用它的程序集位于同一目录中):SevenZip.SevenZipCompressor.SetLibraryPath(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"7z.dll"));您需要添加对SevenZipSharp.dll的引用,而不是常规的7za.dll或7z。dll。由于您需要提供7zipdll,它们需要与代码一起打包——这并不意味着您需要引用它们。您可以将解决方案/项目文件夹添加到您的应用程序,并在那里添加您需要的dll。确保“复制到构建目录”属性设置为“如果更新则复制”。如果您使用的是32位版本的.dll,您可以尝试将项目设置为更喜欢32位架构。以上是C#学习教程:Sevenzipsharp的这段代码如何使用?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——从项目属性...Build>勾选“Prefer32-bit”本文收藏来自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: